乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 78|回复: 6

VBA中的查询

[复制链接]

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2006-9-19 05:20:47 | 显示全部楼层 |阅读模式
大家好&nbsp&nbsp&nbsp&nbsp&nbsp 我是vba的新手 我对VBA有疑问 运行程序后,我想检查结果是否正常。运行lisp后,v可以使用!用于检查结果的变量。但是;我不知道怎么查。有人能帮我吗
  1.    Dim ssetObj As AcadSelectionSet
  2.    Dim mode As Integer
  3.    Dim grpCode(1) As Integer
  4.    Dim dataVal(1) As Variant
  5.    
  6.    Set ssetObj = ThisDrawing.SelectionSets.Add("SS01") --- why they had add "SSO1".
  7.    mode = acSelectionSetAll
  8.    grpCode(0) = 0
  9.    dataVal(0) = "LWPOLYLINE"
  10.      grpCode(2) = 8
  11.    dataVal(2) = "route"
  12.    ssetObj.Select mode, , , grpCode, dataVal
  13.    'ssetObj.Erase
  14.    'ssetObj.Delete

编辑-添加代码标记
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2006-9-19 06:07:36 | 显示全部楼层
您可以在调试模式下运行IDE,并;手表;变量,与您在Visual Lisp IDE中可以使用的变量相同。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-9-19 06:24:51 | 显示全部楼层
对于你正在尝试做的事情,这里是一个很好的起点。下面的代码将所有块移动到第0层。它首先查看该名称的选择集是否存在,如果存在,则将其删除。然后创建所有实体的选择集,然后根据类型进行过滤。然后将这些实体移动到零层并删除选择集
希望这有帮助
  1. Option Explicit
  2. Public Sub TestSet(objDoc As AcadDocument)
  3.   Dim objSelSet As AcadSelectionSet
  4.   Dim objSelCol As AcadSelectionSets
  5.   Dim objLayer As AcadLayer
  6.   Dim intType(0) As Integer
  7.   Dim varData(0) As Variant
  8.   Dim objEnt As AcadEntity
  9.   Set objSelCol = objDoc.SelectionSets
  10.   For Each objSelSet In objSelCol
  11.     If objSelSet.Name = "test1" Then
  12.       objSelSet.Delete
  13.       Exit For
  14.     End If
  15.   Next objSelSet
  16.   Set objSelSet = objSelCol.Add("test1")
  17.   intType(0) = 0
  18.   varData(0) = "INSERT"
  19.   objSelSet.Select 5, filtertype:=intType, _
  20.   filterdata:=varData
  21.   For Each objEnt In objSelSet
  22.     Set objLayer = objEnt.Layer
  23.     If Not objLayer.Freeze And objLayer.LayerOn Then
  24.       objEnt.Layer = 0
  25.     End If
  26.   Next objEnt
  27.   Set objSelCol = Nothing
  28.   objSelSet.Delete
  29. End Sub
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2006-9-19 06:30:07 | 显示全部楼层
应该是吗
  1. objEnt.Layer = "0"
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2006-9-19 06:37:02 | 显示全部楼层
是的,你说得对。应该是字符串
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2006-9-19 06:40:56 | 显示全部楼层
您好,克里和亚利桑那州&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 谢谢你的回复 你的支持给了我一些学习VBA的想法
;实际上,我编写了lisp来收集多段线的坐标并存储在列表中。我正在通过VBA尝试同样的事情
在VBA中,我通过selectionset收集多段线。现在我想要2个收集坐标
感谢您的大力支持和问候
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-9-19 09:24:42 | 显示全部楼层
这只是一个名字,任何名字都可以
使用亚利桑那州#039;s selectionset test修复代码-grpCode(2)不好
ctrl+g将立即打开调试窗口。打印将打印到该位置(或者像Kerry说的那样使用局部变量或观察窗口。添加到下面。Debug.Print ssetObj.count。Delete将删除您不想要的选择集中的项目。Delete将删除选择集而不是其中的项目。现在您可以使用for循环来处理您的PLINE。制作一个集合以添加your坐标
将CoordCol设置为集合
将CoordCol设置为新集合现在将光标放在集合后并点击F1,这将为您提供帮助
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 12:21 , Processed in 0.707566 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表