我通过Powershell在Excel文档中调用宏。
要调用宏,我必须运行一个命名宏并在运行中调用它。但是,当调用宏并成功完成时,将出现一个MessageBox。据我所知,此消息框是查明进程是否已成功完成的唯一方法。
我无法控制删除消息框的能力。 powershell脚本必须等待宏完成。
从文档中:documentation为此不提供此选项的选项,或者显示出来。
我可以使用的替代选项:(但我不确定如何解决消息框被解雇的问题)
是否可以异步运行宏并检查宏的执行情况?
答案 0 :(得分:1)
有一些令人费解的方法可以做到这一点。
1)调用Excel应用程序的另一个实例并使用它运行宏。那你怎么知道它是否已经完成了?您将全局变量按引用传递给它。如果完成与否,使用OnTime
功能可以每隔几秒检查一次。
此处给出了调用另一个excel实例的示例:Stop VBA-Script from "freezing" while sending MDX-Query
2)您可以将脚本存储为.VBS文件。然后调用shell来运行VB脚本,并再次检查一些传递引用变量。
3)使用隐藏的工作表作为缓冲区,一旦异步代码完成运行,该缓冲区将被写入特定位置。同样,您需要一些聪明的OnTime
编程来自动运行轮询服务......更重要的是,要停止运行它!