Страницы: 1
RSS
при работе двух макросов исключить из одного пересекающиеся события
 
добрый день всем! прошу помощи в следующем вопросе:
в файле есть 2 стандартных макроса, срабатывающих на события:
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call макрос1
    Application.DisplayAlerts = False
    ThisWorkbook.Save
End Sub


Код
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
      Call макрос2
End Sub

Видно, что в первом случае (когда закрываем файл) есть строка с сохранением файла. Получается, что при закрытии книги  сначала запускается "макрос1", затем при сохранении инициализируется запуск втрого макроса и выполнение "макрос2". Вопрос: можно ли как-то сделать так, чтобы при закрытии файла он продолжал сохраняться, но при этом макрос:событие на сохранение не срабатывал?
Изменено: Vladimir Chebykin - 18.03.2019 08:10:50
 
Цитата
Vladimir Chebykin написал:
чтобы при закрытии файла он продолжал сохраняться, но при этом макрос:событие на сохранение не срабатывал...
Если файл сохраняется - это значит, что происходит событие "Сохранение файла". Это одно и то же, только разными словами.
Можно, чтобы при событии BeforeClose не выполнялся макрос2.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call Macro1
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    ThisWorkbook.Save
    Application.EnableEvents = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Call Macro2
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Sanja,  работает - большое спасибо!
прочитал справку по "EnableEvents" - получается разработчики специально предусмотрели такую возможность. Круто!
П.С. Михаил Лебедев, я так понимаю, что Вы это же имели ввиду?
Изменено: Vladimir Chebykin - 18.03.2019 09:49:37
Страницы: 1
Наверх