Я пишу скрипт, который открывает и копирует таблицу из excel в word, но результаты каждого запуска разные. Сначала он работает хорошо, но после нескольких запусков начинает появляться раздражающий красный текст (особенно «вызов был отклонен вызываемым абонентом» и метод объекта выбора, такой как $wordObject.Selection.TypeParagraph, не может быть запущен, потому что $wordObject.Selection становится нулевым значением выражение.
Я попытался ReleaseComObject после их закрытия, но проблема все еще возникает
Это потому, что я работаю с двумя ComObject в одном разделе? Моя структура скрипта выглядит так:
$Excel = New-Object -ComObject excel.application
$Excel.visible = $false
$Workbook = $excel.Workbooks.open($pathEx)
$range = $workbook.activesheet.usedrange
$cop = $range.Copy()
$wd = new-object -comObject Word.application
$wd.visible = $true
$doc = $wd.documents.open($pathWd)
$wdSelection = $wd.Selection
$a = $wdSelection.Endkey(6,0)
$wdSelection.typeparagraph()
$wd.Selection.paste()
Закрыть и выйти:
$workbook.close($false)
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
Remove-Variable workbook, excel
$doc.saveAs()
$wd.Quit()
Вот ошибка введите здесь описание изображения
Есть идеи?
* Обновление: странно, что скрипт работает без ошибок на моем компьютере в офисе, но не на моем ноутбуке =.=