2

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

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

如何F9从 python 执行 for excel?

4

1 回答 1

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>>
于 2016-10-04T16:15:08.640 回答