明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1679|回复: 6

for each 的问题?好奇怪啊!

[复制链接]
发表于 2005-2-15 17:21:00 | 显示全部楼层 |阅读模式
for each obj in ss这语句怎么不能对obj赋值啊?我在家里调试的时候是可以的,但到了单位就不行了,同样是CAD2002,有什么关键的地方要注意的吗?各位老大?求救啊!
 楼主| 发表于 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 | 显示全部楼层

reply

我试过没有问题,有时候会有些莫名其妙的错误. 加一句:
ss.Clear
ss.SelectOnScreen

'在这里你检先调试一下看选择集中的实体个数
Dim cnt As Integer
cnt = ss.Count
ThisDrawing.Regen acActiveViewport

For Each obj In ss
MsgBox obj.ObjectName
Next obj
发表于 2005-2-15 23:18:00 | 显示全部楼层
如果没有猜错的话,你那台机器装过试用版本的AutoCAD 2004 英文版。
 楼主| 发表于 2005-2-16 09:41:00 | 显示全部楼层
太感谢两位版主老师啦,我确实以前装过2004版但已经卸载了,现在我的机子上还有一个R14版,不知道有没有影响呢?这是什么原因啊?那我应该怎样做啊?要不要先把R14 卸载,再重装CAD2002呢?
 楼主| 发表于 2005-2-17 09:30:00 | 显示全部楼层
我到底应该怎样做才好呢?请指点!
 楼主| 发表于 2005-2-17 21:02:00 | 显示全部楼层
终于解决问题啦,我把R14和2002都卸载了,然后只装2002,就没问题了,我想可能是我以前装了2002后又装R14,导致R14的什么文件覆盖了2002的什么文件所致的,如果先装R14后才装2002,那应该没问题吧!不知道是不是?没有考证!呵!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 21:47 , Processed in 0.189405 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表