我正在使用Python在excel中运行宏。我希望Python关闭excel。宏刷新excel中的数据连接可能很慢。
如何让python等到刷新完成后再关闭。这就是我正在使用的东西,我需要在xl.Quit之前做一些事情,等待宏的刷新完成????
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()
我可以等待这项工作吗?
答案 0 :(得分:1)
修改您的Refresh
宏,将QueryTable.BackgroundQuery
属性设置为False
。这应该导致宏阻塞,直到它完成。
答案 1 :(得分:1)
您甚至不必设置宏来运行它。 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()