Я использую Application run для вызова нескольких макросов в порядке, подобном этому.Excel ждет, когда один макрос закончит, прежде чем звонить другому
Sub Run_All_Macros()
Application.Run ("Macro_1")
Application.Run ("Macro_1")
End Sub
Когда я запускаю Run_All_Macros, все макросы запускаются параллельно. Есть ли способ дождаться завершения первого макроса до начала второго?
Это кажется странным. 'Application.Run' является синхронным. Вызов Application.Run («Macro_1») не вернется, пока макрос не завершит выполнение. Тем не менее, если макрос запускает асинхронный процесс, то вы можете получить эффект, который вы описываете. Что делают макросы, и какие у вас есть доказательства того, что макросы работают параллельно? –
Первая копирует содержимое файла из сетевого ресурса, вторая добавляет формулу в столбец. Я считаю, что они запускаются одновременно, потому что я вижу, что формула заполняется и перезаписывается вставкой, когда первый макрос открывает файл и копирует его содержимое. –