VBA Excel: Application.DisplayAlerts не работает при вызове из другого макроса

У меня есть макрос, открывающий другую книгу, доступную только для чтения. Чтобы избежать предупреждений только для чтения, я переключаю свойство Application.DisplayAlerts на False, например

Sub tmp()
Application.DisplayAlerts = False
Debug.Print Application.DisplayAlerts
Workbooks.Open "\\Co-file01\FileName.xlsx"
End Sub

И это нормально работает, но если я вызову его из другого макроса, вот так

Sub tmp1()
Application.Run "tmp"
End Sub

Я все еще получаю предупреждение, и код перестает работать, ожидая ответа. Линия

Debug.Print Application.DisplayAlerts 

возвращает False, поэтому кажется, что свойство действительно переключено, но по какой-то причине оно не применяется.

Может ли кто-нибудь объяснить причины, по которым это работает, и предложить какое-либо обходное решение?

Я работаю с Excel 2016 64bit, Windows 7, если имеет значение


person Liuis    schedule 14.05.2018    source источник
comment
Вы должны вызывать макрос напрямую по его имени: просто введите tmp1 в новой строке вместо использования application.run   -  person jkpieterse    schedule 14.05.2018
comment
Вау, это работает! Большое спасибо!   -  person Liuis    schedule 14.05.2018


Ответы (1)


jkpieters предложил ответ

Вы должны вызывать макрос напрямую по его имени: просто введите tmp1 в новой строке вместо использования application.run

person Liuis    schedule 14.05.2018