Abrir um arquivo do Excel manualmente permite que as fórmulas sejam executadas; abrir um arquivo do Excel com VBScript ou PowerShell ou win32com do Python não
Estou tendo um problema com um script que não atualiza um arquivo do Excel e reduzi-o ao seguinte problema:
Se eu abrir um arquivo do Excel, posso ir para a guia Fórmulas e clicar em "Calcular agora" e isso levará um tempo para atualizar todos os cálculos.
Se eu executar um VBScriptsomente para abrir o arquivo (consulte o código a seguir), se eu for para a guia Fórmulas e clicar em "Calcular agora", ele será atualizado imediatamente e nada será alterado.
Dim objXLApp, objXLWb, objXLWs
Set objXLApp = CreateObject("Excel.Application")
objXLApp.Visible = True
Set objXLWb = objXLApp.Workbooks.Open(file_path.xls)
Eu tentei todos os tipos de coisas como:
objXLApp.Calculation = xlAutomatic
objXLApp.Calculate
objXLApp.CalculateFull
objXLApp.CalculateFullRebuild
objXLWb.RefreshAll
objXLWs.EnableCalculation = True
objXLWs.Calculate
Mas eles parecem fazer o mesmo que ir para a guia e clicar em "Calcular", resultando em apenas uma atualização rápida e a página do Excel não tenta atualizar.
O mesmo acontece ao usar o módulo win32com do python. Não consigo executar cálculos no arquivo aberto.
import win32com.client as win32
excel = win32.Dispatch('Excel.Application')
excel.Visible = True
excel_workbook = excel.Workbooks.Open(file_path.xls)
O mesmo também acontece com o PowerShell.
$excel = New-Object -com excel.application
$excel.Visible = $True
$workbook = $excel.Workbooks.Open( $file_path )
Então, por que abrir um arquivo com esses idiomas de alguma forma impede a capacidade de calcular as fórmulas?