Ошибка выполнения 1004: сбой метода OnKey объекта _Application - PullRequest
1 голос
/ 13 июля 2020

Я получаю отчеты о VBA «Ошибка выполнения '1004': метод 'OnKey' объекта '_Application' не удалось» по крайней мере в Excel 2016 под Windows в этом коде:

Private Sub Workbook_Deactivate()
    Application.OnKey "^x"
End Sub

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

В чем может быть причина?

1 Ответ

1 голос
/ 13 июля 2020

Неожиданно многие вызовы API завершаются ошибкой, когда активная книга находится в режиме Защищенного просмотра . Мне даже не удалось переключить активную книгу на ThisWorkbook через Activate.

Обходной путь, который я придумал, - закрыть «Защищенный просмотр», когда пользователь переключается на такой документ из моего приложения. / workbook:

If Not (Application.ActiveProtectedViewWindow Is Nothing) Then
    Application.ActiveProtectedViewWindow.Edit
End If
Application.OnKey "^x"

Это частично лишает защиты, но поскольку мои пользователи работают в основном с внутренними документами, этот компромисс имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...