Kerry 发表于 2006-9-19 05:20:47

VBA中的查询

大家好&nbsp&nbsp&nbsp&nbsp&nbsp 我是vba的新手 我对VBA有疑问 运行程序后,我想检查结果是否正常。运行lisp后,v可以使用!用于检查结果的变量。但是;我不知道怎么查。有人能帮我吗   Dim ssetObj As AcadSelectionSet
   Dim mode As Integer
   Dim grpCode(1) As Integer
   Dim dataVal(1) As Variant
   
   Set ssetObj = ThisDrawing.SelectionSets.Add("SS01") --- why they had add "SSO1".
   mode = acSelectionSetAll
   grpCode(0) = 0
   dataVal(0) = "LWPOLYLINE"
   grpCode(2) = 8
   dataVal(2) = "route"
   ssetObj.Select mode, , , grpCode, dataVal
   'ssetObj.Erase
   'ssetObj.Delete
编辑-添加代码标记

Kerry 发表于 2006-9-19 06:07:36

您可以在调试模式下运行IDE,并;手表;变量,与您在Visual Lisp IDE中可以使用的变量相同。

Bryco 发表于 2006-9-19 06:24:51

对于你正在尝试做的事情,这里是一个很好的起点。下面的代码将所有块移动到第0层。它首先查看该名称的选择集是否存在,如果存在,则将其删除。然后创建所有实体的选择集,然后根据类型进行过滤。然后将这些实体移动到零层并删除选择集
希望这有帮助Option Explicit
Public Sub TestSet(objDoc As AcadDocument)
Dim objSelSet As AcadSelectionSet
Dim objSelCol As AcadSelectionSets
Dim objLayer As AcadLayer
Dim intType(0) As Integer
Dim varData(0) As Variant
Dim objEnt As AcadEntity
Set objSelCol = objDoc.SelectionSets
For Each objSelSet In objSelCol
    If objSelSet.Name = "test1" Then
      objSelSet.Delete
      Exit For
    End If
Next objSelSet
Set objSelSet = objSelCol.Add("test1")
intType(0) = 0
varData(0) = "INSERT"
objSelSet.Select 5, filtertype:=intType, _
filterdata:=varData
For Each objEnt In objSelSet
    Set objLayer = objEnt.Layer
    If Not objLayer.Freeze And objLayer.LayerOn Then
      objEnt.Layer = 0
    End If
Next objEnt
Set objSelCol = Nothing
objSelSet.Delete
End Sub

Kerry 发表于 2006-9-19 06:30:07

应该是吗objEnt.Layer = "0" ?

Kerry 发表于 2006-9-19 06:37:02

是的,你说得对。应该是字符串

Kerry 发表于 2006-9-19 06:40:56

您好,克里和亚利桑那州&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 谢谢你的回复 你的支持给了我一些学习VBA的想法
;实际上,我编写了lisp来收集多段线的坐标并存储在列表中。我正在通过VBA尝试同样的事情
在VBA中,我通过selectionset收集多段线。现在我想要2个收集坐标
感谢您的大力支持和问候

Bryco 发表于 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,这将为您提供帮助
页: [1]
查看完整版本: VBA中的查询