【UiPath 问题 04】Invoke VBA 无法执行

Invoke VBA 的执行原理:临时性地插入 VBA 文件到工作簿,执行完毕之后再将工作簿内的 VBA 文件删除。可以使用在 .xlsx.xlsm 类型的文件中。

项目

问题

VBA_Code.bas 文件内容如下:

Option Explicit
Sub TestVBA()
    MsgBox "Good!"
End Sub

得到如下错误信息:

错误信息

在打开 VBE 的情况下执行,弹出错误对话框时,VBE 内如下:


image.png

留意到 .bas 文件中有两个 Option Explicit 语句, 这样的 VBA 文件是不能通过编译的。换句话说,VBA 本身的错误会导致项目无法正常运行,而且该错误并不会给出明确的提示信息。

解决办法

  • 将 VBA_Code.bas 文件内的 Option Explicit 语句删除,VBA 能完美运行
Sub TestVBA()
    MsgBox "Good!"
End Sub

要点

  • 要事先调好 VBS,确保没有任何问题才能 INVOKE

  • INVOKE VBA 的时候,要注意 Option Explicit 语句,当 VBE 设置为自动插入 Option Explicit 语句时,就不要在文件中放置 Option Explicit 语句

  • INVOKE VBA 的工作方式:往目标工作簿插入 .bas 文件 > 将其命名与调用的文件一致 > copy 文件上的所有内容到 .bas 文件 > 执行 > 移除 .bas 文件。临时插入的 .bas 文件最终不会保留在工作簿中。

返回目录

更多 UiPath 相关的资讯,请关注公众号:流程自动化机器人教程
由于简书禁止直接在文章中插入公众号二维码,请点击 这里 了解添加该公众号的细节。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,825评论 6 49
  • VBA订制工具栏 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴写字的地方阅读 2,266评论 0 0
  • 原谅,就是把监狱里的囚徒放出来,然后发现,其实这个囚徒是我们自己。 -----刘易斯.施密特博士 生活中总会遇到一...
    FlorenceW阅读 541评论 0 2