Приложение.OnKey не работает

#excel #keypress #excel-2013 #vba

#excel #нажатие клавиши #excel-2013 #vba

Вопрос:

Я пытаюсь выполнить вспомогательный, когда я нажимаю определенную клавишу в Excel 2013, используя Application.OnKey метод.

У меня есть следующий код

 Public Sub Workbook_Open()
    Application.OnKey "{r}", "MyEvent"
    Application.OnKey "{t}", "MyEvent"
    Application.OnKey "{x}", "MyEvent"
    Application.OnKey "{z}", "MyEvent"
End Sub

Public Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "{r}"
    Application.OnKey "{t}"
    Application.OnKey "{x}"
    Application.OnKey "{z}"
End Sub

Public Sub MyEvent()
    MsgBox "Hello"
End Sub
  

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


РЕДАКТИРОВАТЬ: я хочу, чтобы нажимаемые клавиши были: r , t , x , и z вместо ENTER .

Комментарии:

1. Я уже пытался воссоздать решение, но, похоже, у меня это не работает. Я не хочу запускать макрос, когда нажимаю клавиши «r», «t», «z» и «x».

Ответ №1:

Это работает для меня. Добавьте код в модуль, сохраните книгу, закройте и снова откройте ее.

 Private Sub Workbook_Activate()

    Application.OnKey "r", "MyEvent"
    Application.OnKey "t", "MyEvent"
    Application.OnKey "x", "MyEvent"
    Application.OnKey "z", "MyEvent"

End Sub

Private Sub Workbook_Deactivate()

    Application.OnKey "r"
    Application.OnKey "t"
    Application.OnKey "x"
    Application.OnKey "z"

End Sub

Public Sub MyEvent()
    MsgBox "Hello"
End Sub