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

これを実行するためにマクロを設定する必要さえありません。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 に答える
1

Refreshマクロを編集して、QueryTable.BackgroundQueryプロパティをに設定しますFalse。これにより、マクロは完了するまでブロックされます。

于 2012-08-06T17:09:51.963 に答える