sunzhq 发表于 2004-11-3 20:22:00

[VBA]求助!

小弟是刚开始学习vba的。想实现的功能是:获取一个模型空间上的所有实体的名称,相同名称的实体名只显示一次。请问该怎样实现??

雪山飞狐_lzh 发表于 2004-11-3 20:32:00

For each i in ThisDrawing.ModelSpace
      
next i

sunzhq 发表于 2004-11-3 21:11:00

谢谢您的回复。
要实现的是统计实体的名称。相同名称的只能显示一次。那样循环就把所有的名称全部显示出来了。有很多的是重复的。

雪山飞狐_lzh 发表于 2004-11-3 21:17:00

什么名称?
ObjectName?

sunzhq 发表于 2004-11-3 21:20:00

对。

雪山飞狐_lzh 发表于 2004-11-3 21:33:00

Sub ts()
On Error Resume Next
Dim i As AcadEntity
Dim objs As New Collection
For Each i In ThisDrawing.ModelSpace
objs.Add i.ObjectName, i.ObjectName
Next i
For Each j In objs
MsgBox j
Next j
End Sub

sunzhq 发表于 2004-11-3 21:48:00

谢谢斑竹。
还是不行。结果显示的还是有重复的名称。

雪山飞狐_lzh 发表于 2004-11-3 21:53:00

我这没有重复的,你到底要什么效果,说清楚点

sunzhq 发表于 2004-11-4 18:46:00

比如说一张图纸上有2个圆,3条直线,4个圆弧。统计时只要求知道这个图纸上有circle,line,arc即可。具体的有多少个circle无关。也就是相同类型实体的objectname只能出一次。
你上面写的这段代码是将modelspace里面的所有实体的objectname转移到collection当中。假如有两个circle,两个line,在遍历集合时就会对circle和line各提示两次。实际需要是只对circle和line各提示一次就可以了。

雪山飞狐_lzh 发表于 2004-11-4 19:06:00

你有试过我的代码么?它确实可以达到你要的效果
页: [1]
查看完整版本: [VBA]求助!