запуск макроса Excel через cmd - PullRequest
0 голосов
/ 28 мая 2019

Я написал код VBA, который берет файл Excel, распаковывает все ячейки в нем и копирует значение из объединенной ячейки во вновь распакованные ячейки.когда я запускаю код в Excel, он работает хорошо.Когда я пытаюсь запустить COD через CMD, я получаю сообщение об ошибке.Я выполняю код из cmd, потому что он должен работать на нескольких файлах Excel через SAS.

код VBS:

Sub UnMergeFill(ByVal ws As Worksheet)

Dim cell As Range, joinedCells As Range

For Each cell In ws.UsedRange
    If cell.MergeCells Then
        Set joinedCells = cell.MergeArea
        cell.MergeCells = False
        joinedCells.Value = cell.Value
    End If
Next

End Sub

sub UnMergeFillAllSheets()
    Dim ws As Worksheet
    for Each ws In Worksheets
         UnMergeFill ws
    Next
End Sub

Команда cmd для запуска кода:

"C:\Users\sm\Documents\work\excel_macro\UnMergeFill.vbs" "C:\User\sm\Documents\work\excel_macro\r.xlsx"

сообщение об ошибке, которое я получаю:

скрипт: c: .. \ UnMergefill.vbs

строка: 1

символ: 26

ошибка: expectef ')'

код 800A03EE

исходный код ошибки компиляции Microsoft VBScript

Спасибо всем за помощь

1 Ответ

0 голосов
/ 28 мая 2019

Я могу ошибаться, но, глядя на код ошибки, а также на код VBA, я думаю, что проблема (или, по крайней мере, одна из проблем) заключается в том, что вам не хватает скобок.

sub UnMergeFillAllSheets()
    Dim ws As Worksheet
    for Each ws In Worksheets
         UnMergeFill(ws) 'Added parentheses
    Next
End Sub

Попробуйте запустить код с ними и посмотрите, поможет ли это.Спасибо и удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...