1

Обычно для остановки VBA-кода используют Esc или Ctrl+Break, но есть ли способ приостановить выполнение, как в Visual Studio?

2 ответа2

1

Если проект разблокирован и доступен для просмотра, то Ctrl-Break должен приостановить / прервать текущую инструкцию. Вам может понадобиться выбрать Инструменты VBE.Опции.. Вкладка «Общие: Разрыв в модулях классов», если ваш код использует классы, но не забудьте переключить его обратно, иначе вы можете получить неожиданные результаты в рабочих средах.

Если вам нужно остановить запуск событий из листов / элементов управления Excel, вы можете использовать Application.EnableEvents = False в ближайшем окне или в коде.

1

VBA - это однопоточное приложение, поэтому оно не может реагировать на события. Принятый ответ - один из способов сделать это. Другой способ - добавить команду DoEvents в код внутри длительных циклов.

For i = 1 to 10000
    ' Do something long
    DoEvents
Loop

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .