QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
系统
[系统通知] 平台第一个项目外包——项目拼多;正式上线,欢迎各单位个人有外包、设计、采购、加工需求的,在此寻找更牛的解决方案
2021-07-01
查看: 2758|回复: 8
收起左侧

[已解决] vba与vb交互

[复制链接]
发表于 2013-7-17 16:38:54 | 显示全部楼层 |阅读模式

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
vb代码中获取cad应用时用的if语句:
0 r3 `/ E4 f6 O; a  [4 nSET ACADAPP=GETOBJECT(,"AUTOCAD.APPLICATION"
& ]1 q  _1 q0 n; q$ l+ ~9 P, o' j6 Lif err then
% ~+ v: \% I# |7 x0 X' Derr.clear% t/ P- Q; R  Y( I+ n4 O
set acadapp= createobject("AUTOCAD.APPLICATION")
' a- R, `) L9 D% `9 [- C: PEND IF
5 ~, A1 \& I/ i& O这个语句怎么不执行呢?每次getobject时会出现控件错误的提示框,问题出在哪里啊,求解释;)
发表于 2013-7-17 22:11:32 | 显示全部楼层
你引用ACAD类库了吗?
 楼主| 发表于 2013-7-18 10:56:56 | 显示全部楼层
引用了肯定的。在2004 和2008 都试过了。。
; q, q1 u. W: [1 k3 ^: R每次错误都是在getobject语句,% Z) s6 U5 ~$ j7 w. R! S
如果不写第一句和if语句直接(createobject语句)就能够打开cad并运行代码。
 楼主| 发表于 2013-7-18 10:57:33 | 显示全部楼层
woaishuijia 发表于 2013-7-17 22:11 static/image/common/back.gif& f3 @, T) s8 l3 f
你引用ACAD类库了吗?
5 h$ `5 @3 X" [( _
引用了肯定的。在2004 和2008 都试过了。。8 U# d: W4 }) X! t# i* ]; \7 {
每次错误都是在getobject语句,
! z2 _1 U# V; G9 S* c! x7 a& @5 b如果不写第一句和if语句直接(createobject语句)就能够打开cad并运行代码。
发表于 2013-7-18 21:50:35 | 显示全部楼层
下面的代码在我的电脑上运行是没有问题的
  1. Dim acadapp As AcadApplication- d+ i; l: U8 p6 V) M/ T% B$ E% F
  2. On Error Resume Next
    * m' O' _1 ?- ?) R3 F+ V
  3. Set acadapp = GetObject(, "AUTOCAD.APPLICATION")2 f, h8 j9 L) r$ b, O% p( I
  4. If Err Then
    $ g; p: G1 t0 [* W
  5. Err.Clear: A7 X1 o3 u: h; \; ^! D
  6. Set acadapp = CreateObject("AUTOCAD.APPLICATION")5 x! a' e+ W/ N. Y
  7. End If
复制代码
 楼主| 发表于 2013-7-19 08:56:47 | 显示全部楼层
on error resume next 语句我曾经加在getobject语句下面尝试,没有效果。。
; Q- h& L" v8 E4 m现在写在首行,要去测试一下,谢谢奉上先
 楼主| 发表于 2013-7-20 09:34:48 | 显示全部楼层
woaishuijia 发表于 2013-7-18 21:50 static/image/common/back.gif- ~8 q7 X, \2 f9 T! |( Z" r4 i$ A- P+ q
下面的代码在我的电脑上运行是没有问题的
+ [$ M9 }- {% U
ok,验证过了。谢谢
! o  [( Y+ d7 z1 k+ yOn Error Resume Next
: T0 y: C* }/ _  c# hSet acadapp = GetObject(, "AUTOCAD.APPLICATION")0 G2 g1 G9 b% ~# H1 S- I3 \/ Y" c
这两句以前我试过,不过顺序翻过来试的
发表于 2013-7-20 14:51:07 | 显示全部楼层
翻过来就不对了" ~+ n* u9 Z' ?/ M
必须在可能出错的代码的前面告诉电脑遇到错误时应该怎么做
 楼主| 发表于 2013-7-22 11:22:26 | 显示全部楼层
woaishuijia 发表于 2013-7-20 14:51 static/image/common/back.gif+ m( ~3 A% g$ K6 [) D" W
翻过来就不对了
( X& x- `  @6 `9 K% e& ~- o必须在可能出错的代码的前面告诉电脑遇到错误时应该怎么做

% B6 s+ G- T$ N. Z- r1 x. d) x我说呢。; }" ?; x+ r- l6 o4 z) x
我以为是代码出错后执行出错陷阱然后再选择跳转呢。+ ]* K" K  j; N- C: B
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备13008828号-1 )

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