乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 74|回复: 2

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

[复制链接]

27

主题

105

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
213
发表于 2003-4-19 09:40:00 | 显示全部楼层 |阅读模式
今天早上我试着用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
    '不能创建对象,我引用的部件是" 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的对象模型还不一样,不都是一个库么
'这是什么世道啊,
回复

使用道具 举报

41

主题

657

帖子

9

银币

中流砥柱

Rank: 25

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

使用道具 举报

27

主题

105

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
213
发表于 2003-4-19 12:16:00 | 显示全部楼层
如果你要,给你了
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:fllolx0ftx0.rar 
下载次数:0  文件大小:1.78 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-28 18:42 , Processed in 1.338373 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表