laoliu09 发表于 2005-2-15 17:21:00

for each 的问题?好奇怪啊!

for each obj in ss这语句怎么不能对obj赋值啊?我在家里调试的时候是可以的,但到了单位就不行了,同样是CAD2002,有什么关键的地方要注意的吗?各位老大?求救啊!

laoliu09 发表于 2005-2-15 18:03:00

Sub test_ss()
       Dim ss As AcadSelectionSet
       Dim obj As AcadEntity
       On Error Resume Next
       Set ss = ThisDrawing.SelectionSets.Add("abc")
       If Err Then
                       Err.Clear
                       Set ss = ThisDrawing.SelectionSets.item("abc")
       End If
       ss.Clear
       ss.SelectOnScreen
                For Each obj In ss
                       MsgBox obj.ObjectName
       Next obj
End Sub
就是这样的一段简单得不得了的代码,为什么obj总是为Nothing,我记得以前是可以通过的,怎么搞的,可能真的是当局者迷吧,我就不知道为什么了,总觉得是一个怪问题,我今天上班一调试就不行了,在家里还是好好的!奇怪啊!希望大家想到什么就说点什么吧,启发一下我也万分感谢了!

王咣生 发表于 2005-2-15 19:03:00

我试过没有问题,有时候会有些莫名其妙的错误. 加一句:
       ss.Clear
       ss.SelectOnScreen
       '在这里你检先调试一下看选择集中的实体个数
       Dim cnt As Integer
       cnt = ss.Count
       ThisDrawing.Regen acActiveViewport
       For Each obj In ss
                       MsgBox obj.ObjectName
       Next obj

mccad 发表于 2005-2-15 23:18:00

如果没有猜错的话,你那台机器装过试用版本的AutoCAD 2004 英文版。

laoliu09 发表于 2005-2-16 09:41:00

太感谢两位版主老师啦,我确实以前装过2004版但已经卸载了,现在我的机子上还有一个R14版,不知道有没有影响呢?这是什么原因啊?那我应该怎样做啊?要不要先把R14 卸载,再重装CAD2002呢?

laoliu09 发表于 2005-2-17 09:30:00

我到底应该怎样做才好呢?请指点!

laoliu09 发表于 2005-2-17 21:02:00

终于解决问题啦,我把R14和2002都卸载了,然后只装2002,就没问题了,我想可能是我以前装了2002后又装R14,导致R14的什么文件覆盖了2002的什么文件所致的,如果先装R14后才装2002,那应该没问题吧!不知道是不是?没有考证!呵!
页: [1]
查看完整版本: for each 的问题?好奇怪啊!