【UiPath 问题 04】Invoke VBA 无法执行
2018-08-27 本文已影响275人
Creator_蔚蓝
Invoke VBA 的执行原理:临时性地插入 VBA 文件到工作簿,执行完毕之后再将工作簿内的 VBA 文件删除。可以使用在 .xlsx 和 .xlsm 类型的文件中。
![](https://img.haomeiwen.com/i3353491/ecaab091cf87dacf.png)
问题
VBA_Code.bas 文件内容如下:
Option Explicit
Sub TestVBA()
MsgBox "Good!"
End Sub
得到如下错误信息:
![](https://img.haomeiwen.com/i3353491/bae5083925d21aad.png)
在打开 VBE 的情况下执行,弹出错误对话框时,VBE 内如下:
![](https://img.haomeiwen.com/i3353491/d57c25e821f313d8.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 相关的资讯,请关注公众号:UiPath教程
![](https://img.haomeiwen.com/i3353491/2eec88386e4f8973.jpg)