Я пытаюсь создать PowerShell Script, который позволяет мне открыть файл Excel, запустить макрос, затем сохранить файл и закрыть его. Мой код ниже:
$excel = New-Object -ComObject Excel.Application
$MacroName1 = "Extraction_Tool.xlsm"
$currentExecutingPath = $fullPathIncFileName.Replace($currentScriptName, "") + $MacroName
$ExcelFiles = Get-ChildItem -Path $currentExecutingPath
$Workbook = $excel.Workbooks.Open($currentExecutingPath)
$excel.Application.DisplayAlerts = $False
$excel.Run("refreshall")
$excel.ActiveWorkbook.Save()
$workbook.Close()
$excel.Quit()
Когда я запускаю этот скрипт, я получаю сообщение об ошибке:
You cannot call a method on a null-valued expression.
At W:\GDA_files\SME_iQA\iQA_NEW\PrepareMacro.ps1:10 char:1
+ $excel.ActiveWorkbook.Save()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Макрос VBA (refreshall
) занимает около одной минуты. Считаете ли вы, что скрипт не может сохранить файл, потому что он пытается сделать это во время работы макроса?