明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3047|回复: 15

为什么我写的这个程序无法使用?

  [复制链接]
发表于 2004-8-12 10:04:00 | 显示全部楼层 |阅读模式
Private Sub UserForm_Click() Dim acadapp As AcadObject
Set acadapp = AcadApplication
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("newtext")
sset.SelectOnScreen
Dim txt As AcadText
For Each txt In sset
If txt.TextString = "q" Then txt.TextString = "2"
txt.Update
Next txt
sset.Delete
Set acadapp = Nothing
End Sub 我这个程序运行后电脑没提示有毛病啊,可是运行一次后就是无法在CAD2004窗口上选我要更改的文字,求教那里有毛病?先行感谢!
发表于 2004-8-12 13:08:00 | 显示全部楼层
1,过滤选择集加速度更快


2,遍历选择集变量定义为:Dim txt As Object
发表于 2004-8-12 15:06:00 | 显示全部楼层
这是在VB里面编写的程序吧?


thisDrawing改为acadapp.ActiveDocument试试。
 楼主| 发表于 2004-8-12 15:19:00 | 显示全部楼层
不是在VB里写的dim acadapp as object


                                                                                                                                                                                                         set acadapp=..............


这两句是我在VB和VBA的感念十分混乱的时候写的,现在看来在VBA里是没什么用处的!


我忘删掉了,但是删掉它们后,或者采用三楼的方法还是只能运行一次!


why

发表于 2004-8-12 16:06:00 | 显示全部楼层
第二次运行的时候是不是出错?


出什么错误提示?
 楼主| 发表于 2004-8-12 17:43:00 | 显示全部楼层
是的出错提示是:命名选择集已存在


但是我已经用delete方法删除了

发表于 2004-8-12 19:44:00 | 显示全部楼层
下面是我在《VBA精彩实例教程》中的解决方法:

On Error Resume Next

Dim SSet As AcadSelectionSet

If Not IsNull(ThisDrawing.SelectionSets.Item("Example")) Then

Set SSet = ThisDrawing.SelectionSets.Item("Example")

SSet.Delete '及时删除不用的选择集非常重要

End If

Set SSet = ThisDrawing.SelectionSets.Add("Example") 在后面需要删除选择集的地方使用SSet.Delete即可。

 楼主| 发表于 2004-8-12 20:07:00 | 显示全部楼层
十分感谢,看出和您的差距之大了


[glow=255,red,2]文字[/glow]请问您的精彩实例教程在那里登的


我怎么找不到,我希望能把你的教程都学习一下
发表于 2004-8-12 21:25:00 | 显示全部楼层
关于选择集的使用在论坛里有很多,下面是最简单的创建选择集的方法:
  1. Function CreatSSet(Optional SSetName As String = "mjtd") As AcadSelectionSet
  2.        On Error Resume Next
  3.        ThisDrawing.SelectionSets(SSetName).Delete
  4.        Set CreatSSet = ThisDrawing.SelectionSets.Add(SSetName)
  5. End Function
 楼主| 发表于 2004-8-13 11:11:00 | 显示全部楼层
发现了个更大的问题!!!


我把我写的程序用二位高人的方法改良后,如果放到宏中在CAD2004窗口下ALT+F8后运行


宏怎么都好使,但是放到工程中还是无法解决问题,还是无法连续使用!


这到底是什么原因?高人指点!宏不过是个公用子程序,为什么在宏里可以连续运行但是到了


工程里就不行了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 02:54 , Processed in 0.187536 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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