Я использую очень простой PowerShell, чтобы открыть файл Excel, запустить макрос и сохранить файл.
Макрос - это кнопка REFRESH ALL на вкладке DATA.
Моя проблема в том, что Excel завис на этапе сохранения, потому что REFRESH ALL никогда не завершается.
Если я добавлю ПАУЗУ между командами.Я могу нормально прогрессировать без проблем.
clear
$file = "\\website\folder\file.xlsm"
$displayname = $File.split("\")[$File.split("\").count-1]
Write-Host "Creating Excel Instance for $displayname"
$Excel = New-Object -ComObject Excel.Application
Write-Host "Opening $displayname"
$Excel.Visible = $True
$Excel.StatusBar = "Opening the file... Please be patient..."
$Workbook = $Excel.Workbooks.Open($file)
Write-Host "Running Refresh Query"
$Excel.StatusBar = $False
$Excel.Run("Refresh_All")
PAUSE ## This pause is needed in order to wait the Macro to happen
Write-Host "Saving $displayname"
$Workbook.Save()
Write-Host "Close Excel Instance"
$Excel.Quit()
Если попытаться прочитать статус $ excel.Ready ... но он всегда готов ...
Я ищу способпрочитать строку состояния и распознать сообщение ЗАПУСК ФОНОВОГО ЗАПРОСА и сохранить файл, когда он будет завершен.
Любая подсказка?