Свойство Application.EnableCancelKey (Excel)

Управляет тем, как Microsoft Excel обрабатывает прерывания пользователем выполняемой процедуры с помощью клавиш CTRL+BREAK (или ESC или COMMAND+точка). Чтение и запись XlEnableCancelKey.

Синтаксис

выражение. EnableCancelKey

выражение: переменная, представляющая объект Application.

Примечания

XlEnableCancelKey может быть одной из следующих констант:

  • xlОтключено. Отмена перехвата клавиш полностью отключена.
  • xlErrorHandler. Прерывание отправляется в выполняющуюся процедуру как ошибка, перехватываемая обработчиком ошибок, настроенным с помощью оператора GoTo On Error . Перехватываемый код ошибки — 18.
  • xlInterrupt. Текущая процедура прерывается, и пользователь может отладить или завершить процедуру.

Используйте это свойство очень осторожно. Если вы используете xlDisabled, невозможно прервать цикл или другой несамозавершающийся код. Аналогично, если вы используете xlErrorHandler , но обработчик ошибок всегда возвращает с помощью оператора Resume , невозможно остановить убегающий код.

Свойство EnableCancelKey всегда сбрасывается в значение xlInterrupt , когда Microsoft Excel возвращается в состояние простоя и код не выполняется. Чтобы перехватить или отключить отмену в процедуре, необходимо явно изменять свойство EnableCancelKey при каждом вызове процедуры.

Пример

В этом примере показано, как можно использовать свойство EnableCancelKey для настройки пользовательского обработчика отмены.

On Error GoTo handleCancel 
Application.EnableCancelKey = xlErrorHandler 
MsgBox "This may take a long time: press ESC to cancel" 
For x = 1 To 1000000 ' Do something 1,000,000 times (long!) 
 ' do something here 
Next x 
 
handleCancel: 
If Err = 18 Then 
 MsgBox "You cancelled" 
End If

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.