运行一个打开MessageBox的macros

我通过Powershell在Excel文档中调用一个macros。

为了调用这个macros,我必须运行一个命名的macros并在运行中调用它。 但是,当调用macros并成功完成时,将出现一个MessageBox。 据我所知,这个消息框是唯一的方法来确定过程是否已经成功完成。

我无法控制删除消息框的能力。 powershell脚本必须等待macros完成。

从文档:这个文档没有给出这种情况的select,或者看起来如此。

我可以使用的替代选项:(但是我不知道如何达到消息框将被解雇的地步)

  1. Excel文档可以通过Powershell插入代码
  2. 可以在文档内存空间内更改选项

是否有可能asynchronous运行macros并检查macros的执行?

有几个令人费解的方法去做这件事。

1)调用Excel应用程序的另一个实例,并使用它运行macros。 那你怎么知道这是否完成? 通过引用来传递一个全局variables 。 并使用OnTimefunction来保持检查每隔几秒钟,如果它的完成与否。

调用另一个excel实例的示例如下: 在发送MDX-Query时,将VBA脚本从“冻结”停止

2)您可以将脚本存储为.VBS文件。 然后你调用shell来运行VB脚本,并再次检查一些通过引用的variables。

3)使用一个隐藏的工作表作为缓冲区,一旦asynchronous代码运行完成后,它将写入特定位置。 再次,你需要一些聪明的OnTime编程来自动运行轮询服务…更重要的是,停止运行它!