Обычно для остановки VBA-кода используют Esc или Ctrl+Break, но есть ли способ приостановить выполнение, как в Visual Studio?
2 ответа
Если проект разблокирован и доступен для просмотра, то Ctrl-Break должен приостановить / прервать текущую инструкцию. Вам может понадобиться выбрать Инструменты VBE.Опции.. Вкладка «Общие: Разрыв в модулях классов», если ваш код использует классы, но не забудьте переключить его обратно, иначе вы можете получить неожиданные результаты в рабочих средах.
Если вам нужно остановить запуск событий из листов / элементов управления Excel, вы можете использовать Application.EnableEvents = False
в ближайшем окне или в коде.
VBA - это однопоточное приложение, поэтому оно не может реагировать на события. Принятый ответ - один из способов сделать это. Другой способ - добавить команду DoEvents в код внутри длительных циклов.
For i = 1 to 10000
' Do something long
DoEvents
Loop