3

我正在使用 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()

等等我可以做这个工作吗?

4

2 回答 2

1

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

于 2012-08-06T17:09:51.963 回答
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()
于 2013-08-29T10:23:19.063 回答