通过Python运行宏,仍然可以打开新的Excel工作表

时间:2018-06-01 13:56:06

标签: python excel vba excel-vba

如果有人知道为什么会这样,那就好奇了。

我有python代码,可以在工作簿中触发并运行宏。宏可能需要几个小时才能运行。如果我在不使用Python的情况下运行宏,我的工作簿是打开的,并且在运行宏时,我无法使用excel直到宏完成。

当我通过Python运行宏时,我注意到,工作表没有打开,不仅如此,但我能够同时python运行excel宏我实际上可以打开其他工作簿。

这是怎么发生的? python触发的工作簿宏从哪里运行?它甚至没有弹出任务管理器?

如果有人知道这是怎么发生的,我很想知道!

此致 Ť

1 个答案:

答案 0 :(得分:1)

Python正在创建一个Excel实例,设置Application.Visible=False并在那里做事。它实际上占用了该实例的UI线程,但您无法看到它。在此期间,您可以通过单击“开始”菜单链接(或双击文件)打开另一个Excel实例,并且可以使用该实例的UI线程执行其他操作。

打开Excel时,默认设置为Application.Visible=True。您的宏正在该实例中运行并阻止UI。由于您使用的是默认UI实例,因此它被阻止,您无法选择创建另一个实例。