中望CAD采VBA开发的zwcad.zvb文件可自动载入但不能加载

craig_tao 2018-05-24 04:04:09
我用VBA二次开发了应用程序,保存为zwcad.dvb后将其保存于安装目录下,这样可以实现每次启动cad时均可将zwcad.zvb载入,但一运行就出现 run time error: method "xxxx" of object "xxxxx" failed. 因为程序本身是没有问题的,只需要我再手动加载一次,便可以正常运行,请问各位大侠,这是什么原因造成的?应如何解决,谢谢!
...全文
2138 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
craig_tao 2018-05-28
  • 打赏
  • 举报
回复
现在问题解决了,只需将Thisdocument修改为Activedocument就可以了,尽管没有用到脆皮大雪糕的方法,但也是受到了很大的启发,非常感谢脆皮大雪糕,向您学习!
craig_tao 2018-05-25
  • 打赏
  • 举报
回复
引用 1 楼 chewinggum 的回复:
猜测是你引用了什么东西,但那东西在你这个程序后面才被加载。 看看你那个 object "xxxxx" 建议,在调用这个method "xxxx" 前先检查object的是否有效,如果无效则延迟一段时间再试。
另外,请问如何检查Object是否有效?谢谢
craig_tao 2018-05-25
  • 打赏
  • 举报
回复
引用 1 楼 chewinggum 的回复:
猜测是你引用了什么东西,但那东西在你这个程序后面才被加载。 看看你那个 object "xxxxx" 建议,在调用这个method "xxxx" 前先检查object的是否有效,如果无效则延迟一段时间再试。
您好,谢谢!我程序中出错的这个Object就是当前文件 Thisdocument,相当于autocad中的Thisdrawing. 每次启动CAD时在加载程序列表中能看到我的程序,但运行就出现上述错误,只要我在“工具”-“加载应用程序”中选中程序手动再加载一次就能正常使用。以前使用Autocad时没有出现过这样的问题。
脆皮大雪糕 2018-05-25
  • 打赏
  • 举报
回复

Public Sub init()
start:
    Dim errCount
    On Error GoTo sleep '如果发生对象调用错误,到sleep标签处
    Dim XXX As Object
    Call XXX.method
    
    On Error GoTo errhandle '对象调用错误通过了才会到这里来,此后的错误进入业务处理错误陷阱。
    'TODO:你的业务逻辑
    Exit Sub
sleep:
    errCount = errCount + 1 '计数,出错几次了
    If errCount > 5 Then Exit Sub '如果错误超过5次,没必要一直死循环等待,退出
    sleep 1000 '延迟一秒
    GoTo start '重新开始
errhandle:
    'TODO:业务逻辑错误处理
    
End Sub
脆皮大雪糕 2018-05-24
  • 打赏
  • 举报
回复
猜测是你引用了什么东西,但那东西在你这个程序后面才被加载。 看看你那个 object "xxxxx" 建议,在调用这个method "xxxx" 前先检查object的是否有效,如果无效则延迟一段时间再试。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧