Запустить макрос Excel из командного файла - PullRequest
0 голосов
/ 23 марта 2020

У меня есть макрос Excel VBA, его функция заключается в сравнении двух образцов и построении результата сравнения в новом файле Excel. При запуске макроса появится окно, в котором можно выбрать файлы для сравнения.

Теперь я хочу сделать это из командной строки. Я создал командный файл со следующим содержимым:

Set MacroName=RoundTrip_VCRIComparison3
"C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" "C:\2_workitems_exported_macro_20200319.xlsm"

и поместил этот код в объект ExcelWBA VBA ThisWorkBook:

Private Sub Workbook_Open()
    Dim strMacroName As String
    strMacroName = CreateObject("WScript.Shell").Environment("process").Item("MacroName")
    If strMacroName <> "" Then Run strMacroName
End Sub

Но это может открыть только мой Excel и запустить макрос, но он не может указать файлы для сравнения. Кто-нибудь знает как это решить?

1 Ответ

1 голос
/ 24 марта 2020

Я использую VBScripts для запуска marcro из пакета:

Попробуйте сохранить следующий код в текстовом редакторе с расширением .VBS

  Dim args, objExcel

    Set args = wScript.Arguments
    Set objExcel = CreateObject("Excel.Application")

    objExcel.workbooks.Open args(0)
    objExcel.visible = False

    objExcel.Run "Filename.xlsm!ModuleName.MacroName"

    objExcel.Activeworkbook.Close(0)
    objExcel.Quit

, затем создайте пакетный файл со следующим кодом:


cscript PreviousCreatedScriptName.vbs "E:\Main BE\FullPathToFileWithMacro.xlsm"

Не забудьте заменить на свой:

"Filename.xlsm!ModuleName.MacroName"
PreviousCreatedScriptName.vbs "E:\Main BE\FullPathToFileWithMacro.xlsm"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...