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