Есть такая конструкция. Открыты два файла. Выполняется список макросов: Application.Run "Макрос1" Application.Run "Макрос2" Application.Run "Макрос3" - на этом месте нужно открыть файл эксель, у которого автоматически при открытии отрабатывает макрос. Дождаться завершения и далее продолжить выполнять макросы ниже. Application.Run "Макрос4" Application.Run "Макрос5"
Подскажите пожалуйста, как это реализовать? Заранее благодарю откликнувшихся.
Есть такая конструкция. Открыты два файла. Выполняется список макросов: Application.Run "Макрос1" Application.Run "Макрос2" Application.Run "Макрос3" - на этом месте нужно открыть файл эксель, у которого автоматически при открытии отрабатывает макрос. Дождаться завершения и далее продолжить выполнять макросы ниже. Application.Run "Макрос4" Application.Run "Макрос5"
Подскажите пожалуйста, как это реализовать? Заранее благодарю откликнувшихся.emkub
Сообщение отредактировал emkub - Суббота, 18.11.2017, 16:55
Sub Между3иЧ() Kill "x:\Признак.xls" Workbooks.Open "x:\Книга_с_Workbook_Open.xlsm" For S = 1 To 123 'по самочувствию Application.Wait (Now + TimeValue("0:00:01")) If Dir("x:\Признак.xls") <> "" Then Exit For Next End Sub 'в книгу "x:\Книга_с_Workbook_Open.xlsm" в ЭтаКнига Private Sub Workbook_Open() Workbooks.Add ActiveWorkbook.SaveAs "x:Признак.xls" End Sub
[/vba]
Здравствуйте, друзья! [vba]
Код
Sub Между3иЧ() Kill "x:\Признак.xls" Workbooks.Open "x:\Книга_с_Workbook_Open.xlsm" For S = 1 To 123 'по самочувствию Application.Wait (Now + TimeValue("0:00:01")) If Dir("x:\Признак.xls") <> "" Then Exit For Next End Sub 'в книгу "x:\Книга_с_Workbook_Open.xlsm" в ЭтаКнига Private Sub Workbook_Open() Workbooks.Add ActiveWorkbook.SaveAs "x:Признак.xls" End Sub
Workbooks.Open FileName:="Путь\Имя.xlsm" Application.Wait Time:=Now + TimeValue("0:00:10") ' это добавил на всякий случай Application.Run "Имя.xlsm!Макрос1"
[/vba] Способ опробован на 2013 офисе. Работает.
InExSu, вот тот самый вариант "попроще"
[vba]
Код
Workbooks.Open FileName:="Путь\Имя.xlsm" Application.Wait Time:=Now + TimeValue("0:00:10") ' это добавил на всякий случай Application.Run "Имя.xlsm!Макрос1"
[/vba] Способ опробован на 2013 офисе. Работает.emkub
Сообщение отредактировал emkub - Воскресенье, 26.11.2017, 20:11