Поделиться через


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

Управляет тем, как Microsoft Excel обрабатывает прерывания пользователей при выполнении процедуры ctrl+break (или esc или command+period). Чтение и запись XlEnableCancelKey.

Синтаксис

expression. EnableCancelKey

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

Примечания

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

  • xlDisabled. Отмена перехвата ключей полностью отключена.
  • xlErrorHandler. Прерывание отправляется в выполняемую процедуру в виде ошибки, перехватываемой обработчиком ошибок, настроенным с помощью инструкции On Error GoTo . Код перехватываемой ошибки — 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 и обратная связь.