mark 发表于 2004-1-16 14:45:51

如果函数帮助

这怎么行不通?我错过了什么?
我正在尝试查看当前dwg中是否存在选择集。

Sub ss_exists()
    If ThisDrawing.SelectionSets.Item("SNEW") Then
      MsgBox "selection set found: "
    End If
End Sub

**** Hidden Message *****

mark 发表于 2004-1-16 15:07:09

项必须是整数。
试试这个:

Sub ss_exists()
Dim I As Integer
For I = 1 To ThisDrawing.SelectionSets.Count
    If ThisDrawing.SelectionSets.Item(I).Name = "SNEW" Then
      MsgBox "selection set found: "
    End If
Next
End Sub

JohnK 发表于 2004-1-16 15:21:22

谢谢蒂姆,但它也不喜欢那样
此行失败
此绘图。选择集。项目(I)。Name=“SNEW”
项中的参数索引无效

Keith™ 发表于 2004-1-16 15:29:49

你是如何创建党卫军的?

Keith™ 发表于 2004-1-16 15:36:07

问题是,虽然您确实可以使用

ThisDrawing.SelectionSets.Item("SNEW")

过滤选择集
,但您无法仅从这里测试它是否真的存在。这与lisp完全不同,在lisp中,您可以查看变量是否设置了值,或者函数是否返回了非n值。
VBA 不允许您在此实例中针对 NULL 进行测试。
此外,如果选择集不存在,您将收到运行时错误“找不到键”,并且应用程序将崩溃。

mark 发表于 2004-1-16 15:42:16

Mark,使用他发布的代码,记住它会受到Option Base语句的影响。
我敢打赌您使用的是选项基数0(这是默认值),所以...

Sub ss_exists()
Dim I As Integer
For I = 0 To ThisDrawing.SelectionSets.Count -1
    If ThisDrawing.SelectionSets.Item(I).Name = "SNEW" Then
      MsgBox "selection set found: "
    End If
Next
End Sub

mark 发表于 2004-1-16 15:43:52


Set ss = ThisDrawing.SelectionSets.Add("SNEW")

daron 发表于 2004-1-16 15:53:31

>我敢打赌你正在使用选项基数0(这是默认值)
打败我!但这确实有效,谢谢。

Keith™ 发表于 2004-1-16 15:58:32

Keith,你介意写一个关于选项库及其所有参数的教程吗?

Keith™ 发表于 2004-1-16 16:03:42

好吧......让我多负担一点...我还没有完成我的另一个东西...让我看看我是否能很快把它组装起来......
页: [1] 2
查看完整版本: 如果函数帮助