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()<BR>       Dim ss As AcadSelectionSet<BR>       Dim obj As AcadEntity<BR>       On Error Resume Next<BR>       Set ss = ThisDrawing.SelectionSets.Add("abc")<BR>       If Err Then<BR>                       Err.Clear<BR>                       Set ss = ThisDrawing.SelectionSets.item("abc")<BR>       End If<BR>       ss.Clear<BR>       ss.SelectOnScreen<BR>                For Each obj In ss<BR>                       MsgBox obj.ObjectName<BR>       Next obj<BR>End Sub


就是这样的一段简单得不得了的代码,为什么obj总是为Nothing,我记得以前是可以通过的,怎么搞的,可能真的是当局者迷吧,我就不知道为什么了,总觉得是一个怪问题,我今天上班一调试就不行了,在家里还是好好的!奇怪啊!希望大家想到什么就说点什么吧,启发一下我也万分感谢了!

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

reply

我试过没有问题,有时候会有些莫名其妙的错误. 加一句:<BR>       ss.Clear<BR>       ss.SelectOnScreen<BR><BR>       '在这里你检先调试一下看选择集中的实体个数<BR>       Dim cnt As Integer<BR>       cnt = ss.Count<BR><b>       ThisDrawing.Regen acActiveViewport<BR><BR></b>       For Each obj In ss<BR>                       MsgBox obj.ObjectName<BR>       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 的问题?好奇怪啊!