QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3158|回复: 8
收起左侧

[已解决] vba与vb交互

[复制链接]
发表于 2013-7-17 16:38:54 | 显示全部楼层 |阅读模式 来自: 中国广东惠州

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

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

x
vb代码中获取cad应用时用的if语句:
8 I: n1 H2 Y% P+ j  F' z% SSET ACADAPP=GETOBJECT(,"AUTOCAD.APPLICATION"6 i4 P* X3 Q0 n- O: ~" M- L4 X: ^
if err then7 x6 V0 w/ C0 K- s6 Z7 O
err.clear7 @- e, R9 v+ k4 D
set acadapp= createobject("AUTOCAD.APPLICATION")
  R4 x3 \7 W* {3 R  c$ F% V& U4 |END IF
- Y  K; }; M: e: Z# l* H这个语句怎么不执行呢?每次getobject时会出现控件错误的提示框,问题出在哪里啊,求解释;)
发表于 2013-7-17 22:11:32 | 显示全部楼层 来自: 中国江苏无锡
你引用ACAD类库了吗?
 楼主| 发表于 2013-7-18 10:56:56 | 显示全部楼层 来自: 中国广东惠州
引用了肯定的。在2004 和2008 都试过了。。
. ~$ M: ]# z4 P3 q2 E1 a* k2 C每次错误都是在getobject语句,) b+ X0 }  X* i+ C0 q5 q( q0 i4 |
如果不写第一句和if语句直接(createobject语句)就能够打开cad并运行代码。
 楼主| 发表于 2013-7-18 10:57:33 | 显示全部楼层 来自: 中国广东惠州
woaishuijia 发表于 2013-7-17 22:11 static/image/common/back.gif) A4 c' d! a: R4 l# |8 c) w" p
你引用ACAD类库了吗?

9 A# e  j+ ~1 p  c8 ~8 {  n引用了肯定的。在2004 和2008 都试过了。。
! e1 H* c; p( y& T6 f每次错误都是在getobject语句,* x5 F0 G: }' N; \, S  ^# H
如果不写第一句和if语句直接(createobject语句)就能够打开cad并运行代码。
发表于 2013-7-18 21:50:35 | 显示全部楼层 来自: 中国浙江杭州
下面的代码在我的电脑上运行是没有问题的
  1. Dim acadapp As AcadApplication3 S! p. z. u" M+ T) C
  2. On Error Resume Next9 B0 W- K+ D  d8 w" w7 z) o8 t
  3. Set acadapp = GetObject(, "AUTOCAD.APPLICATION")
    4 _5 _$ o7 c6 F. ~3 w$ }" l
  4. If Err Then0 w/ C* S+ _) l" X: n/ H! q
  5. Err.Clear1 Q6 P4 ]. }9 K( H( f( {7 U% }' z/ N
  6. Set acadapp = CreateObject("AUTOCAD.APPLICATION")" f3 _/ X# C: C1 f* f; x& H
  7. End If
复制代码
 楼主| 发表于 2013-7-19 08:56:47 | 显示全部楼层 来自: 中国广东惠州
on error resume next 语句我曾经加在getobject语句下面尝试,没有效果。。
3 @* z5 I. _( x4 j# _, C; b现在写在首行,要去测试一下,谢谢奉上先
 楼主| 发表于 2013-7-20 09:34:48 | 显示全部楼层 来自: 中国广东惠州
woaishuijia 发表于 2013-7-18 21:50 static/image/common/back.gif0 K! c9 b# Q4 N* E- W
下面的代码在我的电脑上运行是没有问题的
& U/ v* z4 m/ e  u' }/ I  U# S
ok,验证过了。谢谢
5 g' ]6 {* F0 i! G8 B9 ?6 w, G& p; NOn Error Resume Next
1 ]) ^! U' B8 ?7 I: m: sSet acadapp = GetObject(, "AUTOCAD.APPLICATION")/ z" m$ F2 x* O6 u* w4 U
这两句以前我试过,不过顺序翻过来试的
发表于 2013-7-20 14:51:07 | 显示全部楼层 来自: 中国江苏无锡
翻过来就不对了
4 H5 V" O; r/ Y2 d必须在可能出错的代码的前面告诉电脑遇到错误时应该怎么做
 楼主| 发表于 2013-7-22 11:22:26 | 显示全部楼层 来自: 中国广东惠州
woaishuijia 发表于 2013-7-20 14:51 static/image/common/back.gif) T5 }, e4 ]! L, u7 B: t5 M
翻过来就不对了* L' r8 }& o; {7 C  P
必须在可能出错的代码的前面告诉电脑遇到错误时应该怎么做

: i- `% G& [- I# S/ I我说呢。, n" }7 j; F0 Q4 m6 r2 d2 h! {
我以为是代码出错后执行出错陷阱然后再选择跳转呢。$ |9 P# U" u# h* o. e% q0 @
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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