Co.Mnstr 发表于 2008-11-13 13:14:21

我以为比这简单...(新警报)

我认为这更容易。我遇到了一个路障,在所有示例中,我发现这段代码应该可以工作。
Basic,我的意思是基本的,我想创建两个选择集。我已经了解到我需要检查它们是否已经存在,如果存在,则删除它们。然后再次制作选择集。我希望这个简单的代码所做的是查看现有的选择集并删除与我将要创建的选择集同名的任何选择集。然后做一个简单的显示,向我显示我创建的选择集在绘图中。然后我将在此基础上构建我的代码。
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

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

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

Matt__W 发表于 2008-11-13 13:55:29

马特,
非常感谢你。它像一个符咒。我向你的智慧之词致敬。

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


♪♫ Ewwww ewww 那味道 ...咕噜咕噜闻到那股味道...♪♫

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



我都没看到!

JNieman 发表于 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

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


嘿查克!

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

这不是Se7en的Chuck吧?

Co.Mnstr 发表于 2008-12-3 14:54:34

哦,亲爱的
这是一个宝石!

JNieman 发表于 2008-12-3 15:24:34

我现在需要拍摄Se7en吗?我想我只是留下了持久的印象。
页: [1]
查看完整版本: 我以为比这简单...(新警报)