Taoyimaier 发表于 2003-4-19 09:40:00

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

本帖最后由 作者 于 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的对象模型还不一样,不都是一个库么
'这是什么世道啊,

myfreemind 发表于 2003-4-19 12:05:00

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

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

Taoyimaier 发表于 2003-4-19 12:16:00

代码就是这样的

如果你要,给你了

myfreemind 发表于 2003-4-19 12:33:00

好的,我去调试下~

页: [1]
查看完整版本: 奇怪,vba不行,但vb却一切正常,关于selectonscreen的问题(当然又有新问题啦)