如何在Excel中执行F9 for Excel扩展程序?

我正在使用python在excel上执行一些外部命令。

x1 = win32com.client.DispatchEx("Excel.Application") wb = x1.workbooks.open(filePath+fileName); x1.run("fileName!someMacro") results+=[(wb.ActiveSheet.Cells(4,8).Value, wb.ActiveSheet.Cells(4,16).Value)]; 

它正在工作,运行macros,我可以收集结果。 我有另一个工作表 – 那里在公式栏我有一个button“现在计算”/ F9我想运行F9并从该工作表收集结果。 但是,下面的代码似乎并没有执行F9 – 因此我得到了所有结果相同的值。

 results = [] sheet2=wb.Sheets(5).Select for i in range(n): wb.Sheets(5).Calculate results+=[(wb.Sheets(5).Cells(12,11).Value, wb.Sheets(5).Cells(12,10).Value]; 

我怎样才能从python执行excel的F9

尝试wb.Sheets(5).Calculate()调用 Calculate方法。

如果没有括号,只会返回Calculate方法的一个实例, 不会调用它

 >>> wb.Sheets(5).Calculate <bound method _Worksheet.Calculate of <win32com.gen_py.Microsoft Excel 14.0 Object Library._Worksheet instance at 0x55458248>>