如何让python等到Excelmacros/刷新完成

我正在使用Python在Excel中运行macros。 我想让Pythonclosuresexcel。 macros在Excel中刷新数据连接可能会很慢。

我如何让python等待刷新完成closures。 这就是我正在使用的,我需要的东西之前的xl.Quit,将等待,直到macros的刷新完成?

import win32com.client import os xl = win32com.client.DispatchEx("Excel.Application") wb = xl.workbooks.open("X:\Backoffice\Options Trading\BloombergRate.xlsm") xl.Visible = True xl.run("Refresh") xl.Quit() 

等待方式,我可以做这个工作?

编辑您的Refreshmacros以将QueryTable.BackgroundQuery属性设置为False 。 这应该导致macros被阻塞,直到完成。

你甚至不需要build立一个macros来运行这个。 win32com有一个本地方法刷新所有数据连接。

 import win32com.client import os xl = win32com.client.DispatchEx("Excel.Application") wb = xl.workbooks.open("X:\Backoffice\Options Trading\BloombergRate.xlsm") xl.Visible = True wb.RefreshAll() xl.Quit()