Добрый день!
Подскажите, пожалуйста, как правильнее создать макрос в книге, который бы запускал макрос из других книг, хранящихся на сетевом диске в разных папках. Имя макроса в этих книгах одинаковое "open_last_and_update", название файлов разное, путь разный.
Хотелось бы циклом пробежаться по книгам, запустить в них макрос "open_last_and_update" и закрыть книги с сохранением после выполнения макроса.
В Application.Run наблюдается проблема с сочетанием кавычек.На ум приходит замена пробелов на %20 или использование одинарных кавычек, но не знаю как применить.
Вот что я накидал в примере. Проблема с запуском макроса open_last_and_update в открываемых книгах. И не уверен в адекватном применении ActiveWorkbook при методе Close.
Application.DisplayAlerts и Application.ScreenUpdating вставлю позже.
Подскажите, пожалуйста, как правильнее создать макрос в книге, который бы запускал макрос из других книг, хранящихся на сетевом диске в разных папках. Имя макроса в этих книгах одинаковое "open_last_and_update", название файлов разное, путь разный.
Хотелось бы циклом пробежаться по книгам, запустить в них макрос "open_last_and_update" и закрыть книги с сохранением после выполнения макроса.
В Application.Run наблюдается проблема с сочетанием кавычек.На ум приходит замена пробелов на %20 или использование одинарных кавычек, но не знаю как применить.
Вот что я накидал в примере. Проблема с запуском макроса open_last_and_update в открываемых книгах. И не уверен в адекватном применении ActiveWorkbook при методе Close.
Application.DisplayAlerts и Application.ScreenUpdating вставлю позже.
| Код |
|---|
Sub update_all()
Dim MyPath As New Collection
Dim path As Variant
With MyPath
.Add ("Z:\АНАЛИТИК\III кв. 2019\ОТЧЕТЫ\Имя файла 01.xlsm")
.Add ("Z:\АНАЛИТИК\III кв. 2019\РЕЙТИНГИ\Имя файла 02.xlsm")
.Add ("Z:\ОТЧЁТНОСТЬ\III кв. 2019\СВОДЫ\Имя файла 03.xlsm")
End With
For Each path In MyPath
Workbooks.Open Filename:=path, UpdateLinks:=1, Notify:=False
'Application.Run "path!open_last_and_update" # проблема с кавычками
'open_last_and_update # пока ещё нет такого макроса
'Workbooks(path).Close SaveChanges:=True # ошибка: out of range
ActiveWorkbook.Close SaveChanges:=True
Next
End Sub
|