Как переименовать лист в нескольких файлах Excel и изменить одинаковые ячейки в каждом листе, используя VB для каждого цикла - PullRequest
0 голосов
/ 03 апреля 2019

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

Я работаю с функцией цикла "для каждого", но не могу понять, как ссылаться на переменную Dim в коде

'launch Excel and open file
Set xlObj = CreateObject("Excel.Application")
Dim names(i)
names(0)="VCS"
names(1)="VRS"
names(2)="VIN"
names(3)="VEU"
names(4)="VGT"
for i = 0 to 4
Set xlFile = xlObj.WorkBooks.Open("c:\warem32\EIA_Demand\NG_CONS_SUM_A_EPG0_" & names(i) & "_MMCF_M.xls")
'turn off screen alerts
xlObj.Application.DisplayAlerts = False
'change sheet to desired worksheet name
Worksheets.Name("Data 1").Name = "Data1"
Next
xlFile.Close True
next
xlObj.Quit

Просто для справки имя первой ссылки должно быть: c: \ warem32 \ EIA_Demand \ NG_CONS_SUM_A_EPG0_VCS_MMCF_M.xls

Возможно ли ссылаться на значение x в строке кода, которая открываетФайл Excel (в частности, где у меня есть символы ("x") в коде)?

Если я могу правильно написать этот код, каждая итерация цикла будет изменять имя файла и позволять сценарию выбиратьдругой файл, переименовывая вкладку «данные 1» в «данные1».Код в настоящее время не работает вообще.Я хотел бы также изменить несколько ячеек в строке 3 рабочего листа data1, используя вложенный цикл, но решил, что сначала я начну с этого.Спасибо!

1 Ответ

0 голосов
/ 03 апреля 2019

Попробуйте:

'launch Excel and open file
Set xlObj = CreateObject("Excel.Application")
'turn off screen alerts
xlObj.Application.DisplayAlerts = False

Dim MyNames As Variant
MyNames = Array("VCS", "VRS", "VIN", "VEU", "VGT")
for i = LBound(MyNames) To UBound(MyNames)
    Set xlFile = xlObj.WorkBooks.Open("c:\warem32\EIA_Demand\NG_CONS_SUM_A_EPG0_(" & MyNames(i) & ")_MMCF_M.xls")

    'change sheet to desired worksheet name
    Worksheets.Name("Data 1").Name = "Data1"

    xlFile.Close True

Next i

(К вашему сведению, это не проверено, но, я считаю, должно работать)

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