Matt__W 发表于 2008-11-13 13:14:21

我以为这比这容易…(新手提醒)

我觉得这样比较容易。我遇到了一个障碍,在所有的例子中,我发现这段代码应该可以工作
基本,我是说基本,我想创建两个选择集。我了解到,我需要检查它们是否已经存在,如果已经存在,则删除它们。然后再次创建选择集。我想要这段简单的代码做的是查看现有的选择集,并删除任何与我将要创建的名称相同的选择集。然后做一个简单的显示,显示我创建的选择集在图形中。然后,我将在此基础上构建代码
Sub ChXrefGray()
Dim ASSS as acadselectionsets
Dim Ass, xxreflist, xxlayerlist as acadselectionset
Dim msg as string
Set ASSS = ThisDrawing.SelectionSets
For Each Ass In ASSS
    If Ass.Name = "xreflist" Then
      ASSS.Item("xreflist").Delete
      Else   
    If Ass = "layerlist" Then
      ASSS.Item("layerlist").Delete
      Else   
End If
Next
Set ssxreflist = ASSS.Add("XrefList")
Set sslayerlist = ASSS.Add("LayerList")
MsgBox "there are " & ThisDrawing.SelectionSets.Count & "Selection Sets in this drawing"
msg = vbCrLf & vbCrLf
For Each Ass In ASSS
    AssName = Ass.Name
    msg = msg & AssName
    msg = msg & vbCrLf
Next
MsgBox msg
End Sub

Can#039;不要变得更基本。但是当我运行代码时,VB告诉我,我有一个下一个语句,没有For语句。在代码的最开始。我希望有人能向我解释为什么我的代码不起作用,但其他同样的例子可以
谢谢大家,亚历克斯

Matt__W 发表于 2008-11-13 13:18:11

试试这个…For Each Ass In ASSS
    If Ass.Name = "xreflist" Then
      ASSS.Item("xreflist").Delete
    ElseIf Ass = "layerlist" Then
      ASSS.Item("layerlist").Delete
End If
Next

Maverick® 发表于 2008-11-13 13:48:41


Maverick® 发表于 2008-11-13 13:55:29

马特,非常感谢。它起到了很好的作用。我向你那充满智慧的好话致敬

Matt__W 发表于 2008-11-13 13:56:38

&书信电报;Skynard&gt♪♫ ewww EWW那个味道…坎特楚闻那个味道…&#9834♫ &lt/Skynard>

Maverick® 发表于 2008-11-13 14:24:10



 我没有'我甚至没看到!

Maverick® 发表于 2008-12-3 14:14:45

只是环顾四周,看到了这个帖子。我可以'我相信没有人提供这种代码
Sub ChXrefGray()
Dim ASSS as acadselectionsets
Dim Ass, xxreflist, xxlayerlist as acadselectionset
Dim msg as string
Set ASSS = ThisDrawing.SelectionSets
Set ssxreflist = vbdPowerSet("XrefList")
Set sslayerlist =vbdPowerSet("LayerList")
MsgBox "there are " & ThisDrawing.SelectionSets.Count & "Selection Sets in this drawing"
msg = vbCrLf & vbCrLf
For Each Ass In ASSS
    AssName = Ass.Name
    msg = msg & AssName
    msg = msg & vbCrLf
Next
MsgBox msg
End Sub
'From The Llama Library Published November 12, 1999
Function vbdPowerSet(strName As String) As AcadSelectionSet
Dim objSelSet As AcadSelectionSet
Dim objSelCol As AcadSelectionSets

Set objSelCol = Thisdrawing.SelectionSets
For Each objSelSet In objSelCol
      If objSelSet.Name = strName Then
         objSelCol.Item(strName).Delete
         Exit For
      End If
Next
Set objSelSet = objSelCol.Add(strName)
Set vbdPowerSet = objSelSet
End Function

Matt__W 发表于 2008-12-3 14:21:43


嘿Chuck!

Matt__W 发表于 2008-12-3 14:24:59

这不是#039;t Se7en#039;是Chuck吗?

Matt__W 发表于 2008-12-3 14:54:34

哦,天哪,这是一块宝石!
页: [1] 2
查看完整版本: 我以为这比这容易…(新手提醒)