Привет, Team Я планирую запустить макрос excel из сценария оболочки Windows. Мои МакроЗапуск excel macros (.xlsm) из сценария windows powershell
Public Sub LogInformation()
Dim strFile_Path As String
strFile_Path = Application.ThisWorkbook.FullName & ".txt"
Open strFile_Path For Append As #1
Write #1, "message As String" & " : Logged at " & Now
Close #1
End Sub
Мой PowerShell
#Call the application
$excel = new-object -comobject excel.application
#Now we select the file and path
$excelFile = Get-ChildItem -Path "..\McroWPSS.xlsm"
#The next variable speeds the script up by not calling the comobject as often
$app = $excel.Application
#Now we open the Excel file and activate the macro enabled content
$workbook = $app.workbooks.open($excelfile)
#The next command makes Excel visible
$app.Visible = $false
$workbook.Activate()
#Now we run all the Macros that need to be run.
$app.Run("LogInformation")
#Now we save the workbook in the standard daily format and the close Excel
$workbook.save()
$workbook.close()
$excel.quit()
Когда я бегу мой Powershell скрипт я получаю ниже ошибки
Exception призывающую "Выполнить" с "1" аргумент (ы) : «Не удается запустить макрос« Workbook_Open ». Макрос может быть недоступен в этой книге или все макросы могут быть отключены». В D: \ Powershell \ practice \ MacroRun.ps1: 16 char: 2 + $ app.Run ("Workbook_Open") + ~~~~~~~~~~~~~~~~~~~~ ~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: COMException
Exception призывающий "Сохранить" с "0" аргументом (ы): « 'McroWPSS.xlsm' является Read- Чтобы сохранить копию, нажмите «ОК», а затем дайте книге новое имя в диалоговом окне «Сохранить как» ». В D: \ Powershell \ practice \ MacroRun.ps1: 19 char: 2 + $ workbook.save() + ~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: ComMethodTargetInvocation
Первая строка ошибки описывает причину: либо вы не включили макросы явно с помощью Powershell ЦМД или там ISN» t какие-то макросы вот что приходит мне на ум – newguy
После этого '$ workbook = $ app.workbooks.open ($ excelfile)', где вы включили макросодержание? [См. Это] (http://stackoverflow.com/questions/26907650/enable-macros-via-powershell) для получения дополнительной информации. – newguy
Ваше сообщение об ошибке не соответствует вашему сценарию - какой макрос вы пытаетесь запустить, как он объявлен и в каком модуле он находится? –