关于以前写的VBA在新版本64位Inventor中无法使用的问题

问题:以前使用的VBA程序,使用了诸如ThisDocument、Me这样的对象,在新版的Inventor 64位里面,无法使用了。(现在需要使用ThisDocument.InventorDocument这样的表述方法),并且由于使用了Autoopen这样的自动执行的函数,导致打开一个Inventor部件的时候,弹出大量的错误对话框。能否将Inventor里面的VBA功能禁用,或者禁用AutoOpen函数?能否批量的将零件文件中的VBA程序代码删除或改写,这种操作是可以脱离Inventor进程进行,还是必须在Inventor中进行?

 

解决方法:

一、按住shift健就可以禁用Auto宏命令,Inventor API帮助文档里有说明:

"Autodesk Inventor runs automatic macros automatically whenever the associated events occur. If the user presses the Shift key when the event occurs, the automatic macro will not run. For example, if the user presses the Shift key while opening a document that contains an AutoOpen macro, the macro will not run."

二、要删除或者修改VBA程序,有两种方法:

  1. 可以编写VBA项目(.ivb文件)或者一个简单的宏命令来删除文件中的VBA程序(等用户打开了文件后执行该命令)。例子如下:

    注:需要增加Microsoft Visual Basic for Applications Extensibility library (工具 -> 参考...)。 CodeModule还有一个ReplaceLine函数可以修改VBA代码。

    你也可以做个插件实现上述代码,再做个菜单方便界面调用。插件的一个好处是它可以有安装程序,所以不用配置/修改用户机器上的默认的.ivb文件(应用程序项目),也不用你手动的去加载你的VBA项目。

      以上两种方法都离不开Inventor进程。

三,这种方法可以脱离Inventor,请看我的另外一篇文章:免费的删除文档中的VBA程序的工具及源码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
VBA是一种用于编宏和自动化任务的编程语言。在32位系统下,VBA运行正常,但在64位系统下可能会遇到异常报错的问题。 造成这种异常报错的主要原因是VBA代码在进行指针操作时,使用了32位系统下的指针大小,而在64位系统下,指针大小会发生变化。因此,VBA代码依赖于指针大小的操作可能无法正常运行。 另外,由于64位系统具有更大的内存空间,因此可能会导致运行时内存溢出的问题。在32位系统下,VBA代码能够充分利用系统的内存资源,但在64位系统下,代码需要更多的内存空间,如果没有进行适当的优化,可能会导致内存溢出,并触发异常报错。 为了解决这个问题,可以采取以下步骤: 1. 检查VBA代码是否使用了指针相关的操作,如果有,需要对代码进行修正,适配64位系统下的指针大小。 2. 在64位系统下,要注意代码对于内存的使用情况,避免出现内存溢出问题。可以考虑使用更高效的算法或减少内存占用的方式进行优化。 3. 如果遇到无法解决的异常报错问题,可以尝试使用32位版本的Office软件,在64位系统上安装32位版本的Office可以解决某些兼容性问题。 总之,VBA在32位系统下运行正常,在64位系统下可能会出现异常报错问题,主要原因是指针大小的变化和内存使用的差异。通过修正代码和优化内存使用,可以解决大部分的异常报错情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值