Добрый день!
Подскажите, пожалуйста, как правильнее создать макрос в книге, который бы запускал макрос из других книг, хранящихся на сетевом диске в разных папках. Имя макроса в этих книгах одинаковое "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 |