明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 880|回复: 7

如何用VBA提示用户拾取编组图框,并获取编组名称??高手在哪里?

[复制链接]
发表于 2018-3-26 11:36 | 显示全部楼层 |阅读模式
本帖最后由 dong20030432 于 2018-3-30 08:58 编辑

如题,原计划用户直接点取编组对象,直接返回其名称,但实际无论如何点取,得到的都是编组中的某个对象,无法实现。后又想到逐一得到用户选择对象的句柄列表(数组1),与groups集合中的对象的句柄(数组2)对比,得出用户选择的编组,结果发现group编组的句柄并不在数组1中,也无法实现。
请教各位高手,具体应该怎么实现,谢谢了!
 楼主| 发表于 2018-3-28 09:46 | 显示全部楼层
帮帮忙,谢谢大家了!
发表于 2018-3-31 22:18 | 显示全部楼层
  1. Dim obj1 As AcadObject, pt As Variant
  2. ThisDrawing.Utility.GetEntity obj1, pt
  3. Dim objG As AcadGroup, obj2 As AcadObject
  4. For Each objG In ThisDrawing.Groups
  5.     For Each obj2 In objG
  6.         If obj1.ObjectID = obj2.ObjectID Then GoTo Finished
  7.     Next
  8. Next
  9. Finished:
  10. Debug.Print objG.Name


是这意思吗?
发表于 2018-3-31 22:26 | 显示全部楼层
我发现组可以嵌套,所以,一个对象,可能在多个组里
 楼主| 发表于 2018-4-2 11:51 | 显示全部楼层
zzyong00 发表于 2018-3-31 22:26
我发现组可以嵌套,所以,一个对象,可能在多个组里

哦,原来组可以嵌套,还真不知道,又长知识了,非常感谢!
感谢您的代码,我回头按您的代码再试试,应该是这样。我新手,还在摸索,感谢您的帮助!
 楼主| 发表于 2018-4-2 12:20 | 显示全部楼层

非常感谢您的代码,成功帮我解决了问题,谢谢谢谢!
 楼主| 发表于 2018-4-2 12:21 | 显示全部楼层

原来是要两层循环才可以呀!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 06:33 , Processed in 0.227720 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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