我遇到了一个脚本不能更新excel文件的问题,我把它简化为以下问题。
如果我打开一个excel文件,我可以进入公式选项卡,点击 "立即计算",它会花一点时间更新所有的计算结果。
如果我运行一个VBScript just 打开文件(见下面的代码),如果我进入公式标签并点击 "立即计算",它就会立即刷新,没有任何变化。
Dim objXLApp, objXLWb, objXLWs
Set objXLApp = CreateObject("Excel.Application")
objXLApp.Visible = True
Set objXLWb = objXLApp.Workbooks.Open(file_path.xls)
我已经尝试了各种各样的东西,比如。
objXLApp.Calculation = xlAutomatic
objXLApp.Calculate
objXLApp.CalculateFull
objXLApp.CalculateFullRebuild
objXLWb.RefreshAll
objXLWs.EnableCalculation = True
objXLWs.Calculate
但这些似乎与进入标签并点击 "计算 "所做的事情相同,结果只是快速刷新,Excel页面根本没有尝试更新。
使用python的win32com模块时也是如此。我不能在打开的文件中运行计算。
import win32com.client as win32
excel = win32.Dispatch('Excel.Application')
excel.Visible = True
excel_workbook = excel.Workbooks.Open(file_path.xls)
使用PowerShell也是如此。
$excel = New-Object -com excel.application
$excel.Visible = $True
$workbook = $excel.Workbooks.Open( $file_path )
那么,为什么用这些语言打开的文件会以某种方式关闭计算公式的能力?