用vba调用cad时,2010版cad,可以看到属性值的,但调用的是2014版时,属性值为空,属性值内显示加载 DLL 错误。
调用语句是:
Set Acadapp = GetObject(, "AutoCAD.Application")
最近写CAD的VBA代码,我也遇到这问题了 。64位的AutoCAD2010到2014 的VBA都有各种问题:
(1)从CAD2010到2014(64位),使用部分对象的方法或属性还得区分windows系统的位数,特坑!!!还得专门为这几个版本写不同的代码。
(2)CAD2010到2012版本(64位)的VBA代码运行奇慢。
(3)CAD2014(64位)运行VBA代码直接报加载DLL错误(CAD2014是2013的小升级版,所以CAD2013应该也有同样的问题,我没试过,只是推测)。
个人觉得上面的问题是对应版本的VBA的问题(从CAD2010开始VBA模块不直接集成在CAD中,估计上面的毛病是跟着出现的,后面从CAD2015开始这样的毛病已经更正了)。跟是是在EXCEL里还是在CAD里运行VBA没有关系。
所以如果必须安装cad2010到2014,还要运行VBA代码,那我就建议安装对应的32位版本(CAD2010的32位的没有问题)(WIN10下这几个版本的32位版本我试过了,没法安装...)
AutoCAD2015及以上版本(无论32位还是64位)运行VBA都没有上面说的问题,所以还是推荐装高点版本的方式解决问题。
也试过CAD2004,CAD2007,CAD2009(都是32位,64位的没那么多时间试)除了不支持后来版本新的对象属性和方法外,运行vba也都算是正常。
以上只是个人见解,可能描述不是完全表述事实。如果有大神知道怎么解决上面说的问题,还请不吝指教!
(1)从CAD2010到2014(64位),使用部分对象的方法或属性还得区分windows系统的位数,特坑!!!还得专门为这几个版本写不同的代码。
(2)CAD2010到2012版本(64位)的VBA代码运行奇慢。
(3)CAD2014(64位)运行VBA代码直接报加载DLL错误(CAD2014是2013的小升级版,所以CAD2013应该也有同样的问题,我没试过,只是推测)。
个人觉得上面的问题是对应版本的VBA的问题(从CAD2010开始VBA模块不直接集成在CAD中,估计上面的毛病是跟着出现的,后面从CAD2015开始这样的毛病已经更正了)。跟是是在EXCEL里还是在CAD里运行VBA没有关系。
所以如果必须安装cad2010到2014,还要运行VBA代码,那我就建议安装对应的32位版本(CAD2010的32位的没有问题)(WIN10下这几个版本的32位版本我试过了,没法安装...)
AutoCAD2015及以上版本(无论32位还是64位)运行VBA都没有上面说的问题,所以还是推荐装高点版本的方式解决问题。
也试过CAD2004,CAD2007,CAD2009(都是32位,64位的没那么多时间试)除了不支持后来版本新的对象属性和方法外,运行vba也都算是正常。
以上只是个人见解,可能描述不是完全表述事实。如果有大神知道怎么解决上面说的问题,还请不吝指教!
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-03-04
cad2014VBA提取字符
还是不行,我是excel调用cad ,在窗口,看到的下面这样的,有办法吗?我的系统及cad 都是64位的
我这个是直接在CAD的VBA里提取字符的,excel调用CAD的没试过,要是方便的话你可以发给我调试下
本回答被网友采纳第2个回答 2019-03-04
答
1条回答
zhangsonglin_c
LV.17 2013-08-08
重新在2010中编译一下。两者跨越了版本,库程序也可能不同,对照看看两者的开发手册,有些什么差别,修改一下源程序。一般需要修改的地方不会太多。
1条回答
zhangsonglin_c
LV.17 2013-08-08
重新在2010中编译一下。两者跨越了版本,库程序也可能不同,对照看看两者的开发手册,有些什么差别,修改一下源程序。一般需要修改的地方不会太多。