Вы можете прервать макрос в Excel в любое время, нажав клавишу Esc или Ctrl + Break.

Поместите командную кнопку на листе и добавьте строки следующего кода:

Dim x As Long

x = 5

Do While x > 2

x = x + 1

Loop
  1. Нажмите кнопку управления на листе. Этот макрос никогда не останавливается, так как часть после того, как «Do While» всегда будет истинным (х всегда будет выше, чем 2).

  2. Для того, чтобы остановить этот бесконечный цикл, нажмите Esc или Ctrl + Break. Следующее диалоговое окно появится:

Code Interrupted Dialog Box

  1. Нажмите кнопку Завершить, чтобы завершить макрос, нажмите кнопку Debug, чтобы посмотреть на макро в редакторе Visual Basic.

  2. Добавьте следующую строку кода в начале вашего кода, если вы не хотите, чтобы пользователи вашей программы, чтобы иметь возможность прервать макрос (не рекомендуется).

Application.EnableCancelKey = xlDisabled
  1. Хотя Excel VBA сбрасывает свойство EnableCancelKey автоматически xlInterrupt в конце макроса, это хорошая практика (при использовании предыдущей строки кода), чтобы закончить свой макрос с помощью следующей строки кода:

Application.EnableCancelKey = xlInterrupt

Примечание: если Excel зависает, и вы не можете прервать макрос больше, нажмите Ctrl + Alt + Delete и закрыть Excel.