это мой первый вопрос о StackOverflow, но я постараюсь учитывать стандарты сообщества.
Я использую Office 2013 на Win7 Pro и PoSh v4.0. При выполнении последующего сценария я получаю следующую ошибку: "Вызов метода не выполнен, поскольку [System.__ComObject] не содержит метод с именем "Закрыть"".
$xl = New-Object -comobject Excel.Application
$xl.Visible = $false
$xl.DisplayAlerts = $false
$filepath = "C:\Users\rysullivan\Desktop\Projects\EDCautomation\attach\"
$wb1 = $xl.Workbooks.Open((Join-Path $filepath "Ryan Sullivan-Template.xlsx"))
sleep 5
$wb1.Close()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
В соответствии со стандартом представления кратчайшего кода, воспроизводящего ошибку, я разработал приведенный выше код на основе более крупной автоматизации.
Powershell 4.0 и Excel 2013 | Ошибка | Work-a-round, похоже, приближается к той же точке. Я следовал решению потока/культуры, предложенному XXInvidiaXX, и возникла та же ошибка.
На Проблемы с автоматизацией Excel в PowerShell был ответ Роя, который указывал на время ошибка, но я вставил команду Sleep и попытался запустить команды открытия и закрытия по отдельности, обе безрезультатно.
Любая помощь, особенно базовая теория, приветствуется.
$wb1.close()
? - person Dane Boulton   schedule 27.03.2015$env:USERPROFILE
и запустил скрипт без проблем. Может ли эта книга быть связана с чем-то странным в вашем файле? Может быть, закрыть PS или перезагрузиться и попробовать еще раз, чтобы убедиться, что это не застряло в памяти? - person TheMadTechnician   schedule 27.03.2015$wb1.Close($false)
или$wb1.Close($false,$null,$false)
- person Mathias R. Jessen   schedule 27.03.2015