我正在使用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 ?
答案 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>>