我正在通过Powershell调用Excel文档中的宏。

要调用该宏,我必须运行一个命名宏并在运行时调用它。但是,当宏被调用并成功完成时,将出现一个MessageBox。据我所知,此消息框是找出该过程是否成功完成的唯一方法。

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

从文档中:documentation在这种情况下没有提供选项,因此出现。

我可以使用的替代选项:(但是我不确定如何到达关闭消息框的位置)

  • Excel文档可以通过Powershell
  • 插入代码
  • 可以在文档存储空间
  • 中更改选项

    是否可以异步运行宏并检查宏的执行情况?

    最佳答案

    有一些复杂的方法可以做到这一点。

    1)调用Excel应用程序的另一个实例,并使用该实例运行宏。那你怎么知道它是否完成了?您通过引用来传递全局变量。并使用OnTime功能每隔几秒钟检查一次(是否完成)。

    此处给出了一个调用另一个excel实例的示例:Stop VBA-Script from "freezing" while sending MDX-Query

    2)您可以将脚本存储为.VBS文件。然后,调用 shell 程序以运行VB脚本,并再次检查一些按引用传递的变量。

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

    关于excel - 运行一个打开MessageBox的宏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24619811/

    10-11 04:58
    查看更多