如何在python中为excel电子表格执行F9?

时间:2013-09-15 22:22:16

标签: python 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)];

它正在运行,运行宏,我可以收集结果。 我有另一张表 - 在Formulas栏中我有一个按钮“立即计算”/ 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

1 个答案:

答案 0 :(得分:0)

尝试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>>