明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2328|回复: 12

[VBA]求助!

  [复制链接]
发表于 2004-11-3 20:22:00 | 显示全部楼层 |阅读模式
小弟是刚开始学习vba的。想实现的功能是:获取一个模型空间上的所有实体的名称,相同名称的实体名只显示一次。请问该怎样实现??
发表于 2004-11-3 20:32:00 | 显示全部楼层
For each i in ThisDrawing.ModelSpace


       


next i
 楼主| 发表于 2004-11-3 21:11:00 | 显示全部楼层
谢谢您的回复。


要实现的是统计实体的名称。相同名称的只能显示一次。那样循环就把所有的名称全部显示出来了。有很多的是重复的。
发表于 2004-11-3 21:17:00 | 显示全部楼层
什么名称?


ObjectName?
 楼主| 发表于 2004-11-3 21:20:00 | 显示全部楼层
对。
发表于 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
 楼主| 发表于 2004-11-3 21:48:00 | 显示全部楼层
谢谢斑竹。


还是不行。结果显示的还是有重复的名称。
发表于 2004-11-3 21:53:00 | 显示全部楼层
我这没有重复的,你到底要什么效果,说清楚点
 楼主| 发表于 2004-11-4 18:46:00 | 显示全部楼层
比如说一张图纸上有2个圆,3条直线,4个圆弧。统计时只要求知道这个图纸上有circle,line,arc即可。具体的有多少个circle无关。也就是相同类型实体的objectname只能出一次。


你上面写的这段代码是将modelspace里面的所有实体的objectname转移到collection当中。假如有两个circle,两个line,在遍历集合时就会对circle和line各提示两次。实际需要是只对circle和line各提示一次就可以了。
发表于 2004-11-4 19:06:00 | 显示全部楼层
你有试过我的代码么?它确实可以达到你要的效果
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-22 02:04 , Processed in 0.194107 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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