Как преобразовать код макроса VBA для запуска с VBScript - PullRequest
0 голосов
/ 28 октября 2019

У меня есть следующий код VBA / Macro:

Sub MergeSameCells()
Application.DisplayAlerts = False
Dim rng As Range

MergeCells:

For Each rng In Selection
    If rng.Value = rng.Offset(1, 0).Value And rng.Value <> "" Then
        Range(rng, rng.Offset(1, 0)).Merge
        Range(rng, rng.Offset(1, 0)).HorizontalAlignment = xlCenter
        Range(rng, rng.Offset(1, 0)).VerticalAlignment = xlCenter
        GoTo MergeCells
    End If
Next

End Sub

Проблема: Каждый раз, когда я получаю новый файл с / с с повторяющимися строками, мне приходится копировать приведенный выше код и создавать макросы. Я не хочу это делать. Вместо этого я сначала надеялся, что есть способ конвертировать макрос в файл «EXE», и, очевидно, я не могу этого сделать. Итак, следующий лучший вариант, который Google порекомендовал, это использовать VBScript. Итак, это то, что я кодировал:

dim XlApp
dim wb
dim ws
dim objRange
dim rng
set XlApp = CreateObject("Excel.Application")
XlApp.Visible = True
Path = "C:\Users\zkumh45\Documents\Bundling Sizing 20191025.xlsx"
set wb = XlApp.Workbooks.Open(path)
set ws = wb.Sheets("export (23)")
Set objRange = XlApp.Range("A2","A5")  

For Each rng In objRange
    If rng.Value = objRange.Offset(1, 0).Value And rng.Value <> "" Then
        objRange(rng, rng.Offset(1, 0)).Merge
        objRange(rng, rng.Offset(1, 0)).HorizontalAlignment = xlLeft
        objRange(rng, rng.Offset(1, 0)).VerticalAlignment = xlCenter       
    End If
Next 
wb.close

Я знаю, что мой VBS-код некорректен (потому что он продолжает выдавать ошибки), но я пытался запустить какой-то базовый код, но у меня нет ума. Может кто-нибудь помочь с этим кодом?

Вот ошибка, с которой я сталкиваюсь:

enter image description here

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