1

我想通过按下功能区中的按钮来更新当前工作簿上的所有功能,但 refreshAll 功能不起作用。以下是映射到单击的按钮的 refresh_func 函数,该函数运行逻辑

from win32com.client.gencache import EnsureDispatch
def refresh_func():
    ExcelApp  = EnsureDispatch('Excel.Application')
    ExcelApp.Visible = True
    ExcelWrkbook = ExcelApp.Workbooks(1)
    ExcelWrkbook.RefreshAll()

Specs:
Python 3.8.6 32 bit
Pyxll 5.0.5 32 bit
Microsoft Excel 2016

可能存在未保存 excel 文件且用户想更新其工作表上的函数但不想保存它的情况。此外,解决方案不应强迫我保存或关闭文件以使解决方案正常工作或刷新功能

我对任何解决此问题的 github 软件包持开放态度。

4

1 回答 1

1

嘿伙计们得到了解决方案:

ExcelApp  = EnsureDispatch('Excel.Application')

# Either of the following 3

# this will also work
ExcelApp.CalculateFull()

# this is basically using shortcut keys CTRL+ALT+F9 (CTRL+ALT+SHIFT+F9 this an alternative that also works)
ExcelApp.SendKeys("^%{F9}")

# this will also work
ExcelApp.CalculateFullRebuild()
于 2020-12-28T11:13:30.087 回答