直接使用 Excel Application Scope 来处理 Excel 数据并不灵活,也不方便。如果可以运行 VBA 脚本的话,那就简直完美。因为 VBA 可以访问 Excel 的对象模型,假如 UiPath 可以与 VBA 交互,就意味着获得了 Excel VBA 的全部能力,也间接地获得了 对 Excel 的所有控制。当然,获得这个能力的前提是你写的 VBA 程序足够好。
Excel Application Scope 提供了两个 Activity 来执行 VBA 脚本:Execute macro 和 Invoke VBA
-
Execute macro 执行 工作簿内的 Macro。VBA 脚本存储在工作簿中,UiPath 仅仅是调用相关的宏,然后执行它,适用于 .xlsm 类型的工作簿
Execute macro
-
Invoke VBA 执行工作簿外部的 VBA 脚本。VBA 脚本用单独的 .bas 文件存储起来,UiPath 做了以下的事情:
- 往目标工作簿插入 .bas 文件
- 将其命名与调用的文件一致
- 复制文件上的所有内容到 .bas 文件
- 执行指定的 Sub
- 移除 .bas 文件
Invoke VBA 相当于临时性地插入了 .bas 文件,执行完成之后又把插入的 .bas 文件删除了。即 .bas 文件最终不会被存储在工作簿里。这意味着不能存储 VBA 代码的 .xlsx 类型的工作簿也可以使用Invoke VBA 活动。当然,对 .xlsm 类型的工作簿使用这个活动当然是可以的。
Invoke VBA
网友评论