明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1939|回复: 3

奇怪,vba不行,但vb却一切正常,关于selectonscreen的问题(当然又有新问题啦)

[复制链接]
发表于 2003-4-19 09:40:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2003-4-19 9:40:43 编辑

今天早上我试着用vb谢了一下代码,一切正常,奇怪
但还有问题要问,见注释部分
Option Explicit

Public Sub main()
Dim objapp As Object
    '问什么我用dim objapp as acadapplication后,在后面的getobject语句里
    '就会出错,说什么类型不匹配,所以我只有将其定义为object,这样的话在
    '编写程序时就没有了一些提示,不得不把一些属性和方法的全名输入正确
    '何其痛苦,后面的sset赋值也是一样,如果dim sset as acadselectionsets
    '用set赋值是也会出错,到底是dim as 后面的类型错了还是getobject用错了
    '还有,如果我打开的不是r14而是cad2000,那么这段代码又通不过了,说activex
    '不能创建对象,我引用的部件是"AutoCAD 2000 XXX",我看目录也是2000下的
    'acad.tbl,主要就是这些问题了,要不是这些问题,我肯定用vb而不用vba,因为
    'vba里有了thisdrawing了,版主我昨天1:30后才睡,见天7:30就来了,不要不回答
    '啊,最好给我一个vb了小段代码好了,hehe,我太贪心了吧,那不好意思,鄙人就是这
    '样子的
Set objapp = GetObject(, "autocad.application")

Dim sset As Object
Dim ss As Object
Set sset = objapp.ActiveDocument.SelectionSets

Dim i As Integer
If sset.Count > 0 Then
For i = 0 To sset.Count - 1
  If UCase(sset.Item(i).Name) = "THANKS" Then
     sset.Item(i).Clear
     sset.Item(i).Delete
     End If
     Next i
     End If
Set ss = sset.Add("thanks")
ss.SelectOnScreen

MsgBox ss.Count
ss.Clear
ss.Delete
End Sub

'难道vba的对象模型和vb的对象模型还不一样,不都是一个库么
'这是什么世道啊,
发表于 2003-4-19 12:05:00 | 显示全部楼层

后面的代码是你在VB中的全部代码吗?若不是,请帖全部上来,我看能不能帮你分析一下

后面的代码是你在VB中的全部代码吗?若不是,请帖全部上来,我看能不能帮你分析一下~[br]
 楼主| 发表于 2003-4-19 12:16:00 | 显示全部楼层

代码就是这样的

如果你要,给你了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2003-4-19 12:33:00 | 显示全部楼层

好的,我去调试下~

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 18:55 , Processed in 0.197386 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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