#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