Мне нужна помощь, чтобы улучшить метод, который я реализовал. Вот подробности.

У меня есть несколько таблиц 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 в выбранных каталогах являются допустимыми записями для сценария ...

Мысли?

1 ответ1

0

VBS довольно негибок и абстрагирован от поставленной задачи, поэтому вместо того, чтобы использовать его для управления вещами, почему бы просто не иметь контрольную книгу, которая запускает и контролирует процесс? Обработка ошибок и аудит могут быть намного более элегантными и информативными, а тот факт, что объекты являются нативными, значительно облегчает работу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .