Мне нужна помощь, чтобы улучшить метод, который я реализовал. Вот подробности.
У меня есть несколько таблиц Excel (xls, изначально написанных на Excel 2007 или 2010), в которых есть 3 основных макроса, которые я хочу автоматизировать для последовательного запуска.
У меня есть один файл для каждого из наших удаленных местоположений, каждое удаленное местоположение разделено на три основных области
поэтому все эти файлы сохранены на общем диске следующим образом:
Area A (folder)
Office/Plant A.xls
Office/Plant B.xls
Office/Plant C.xls
Area B
Office/Plant D.xls
Office/Plant X.xls
Я создал уникальный VBS для каждого файла xls, а затем выполнил все сценарии из файла bat.
Код для каждого файла VBS в основном один и тот же, но я жестко закодировал пути и имена файлов ...
Есть ли способ, которым я могу предоставить три пути и имена всех файлов в качестве переменных, чтобы один и тот же код мог циклически проходить по списку файлов и выполнять три макроса последовательно? (имена макросов всегда одинаковы)
Это код, который я сейчас использую: (файлы защищены)
Dim xlApp
Dim xlWkb
Set xlApp = CreateObject("excel.application")
Set xlWkb = xlApp.Workbooks.Open("P:\Area A\Office/Plant A.xls")
'xlWkb.RunAutoMacros 1 'xlautoopen ???
xlApp.Run ("unprotect_spreadsheets")
xlApp.Run ("Download_Data")
xlWkb.Save
xlApp.Run ("Protect_SpreadSheets")
xlWkb.Save
xlWkb.Close false
Set xlWkb = Nothing
xlApp.Quit
Set xlApp = Nothing
WScript.Echo "Finished: Office/Plant A.xls"
Можете ли вы предложить что-то? Я хочу начать инициализацию списка переменных и путей, потому что не все файлы XLS в выбранных каталогах являются допустимыми записями для сценария ...
Мысли?