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()<BR>On Error Resume Next<BR>Dim i As AcadEntity<BR>Dim objs As New Collection<BR>For Each i In ThisDrawing.ModelSpace<BR>objs.Add i.ObjectName, i.ObjectName<BR>Next i<BR>For Each j In objs<BR>MsgBox j<BR>Next j<BR>End Sub<BR>

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] 2
查看完整版本: [VBA]求助!