2017-02-22 47 views
-1

Я нахожусь на VBA с явно простым кодом, пытаясь создать событие, вызванное нажатием Enter. Так вот мой код в книге:VBA: application.onkey не работает

Option Explicit 

Private Sub Workbook_Open() 

    Application.OnKey "", "pressEnter" 

End Sub 

И что должно произойти в модуле:

Public Sub pressEnter() 

    ThisWorkbook.Worksheets(1).Cells(1, 1).Value = 20 

End Sub 

Однако, когда я нажимаю Enter/Return ключ, ничего не происходит. Как и при обычном Enter, он выбирает ячейку, уступающую активному. Я пробовал с другими ключами, такими как ^+b или ^+a, и у меня такая же проблема.

Кто-нибудь видит решение?

ответ

1

Вы должны указать ключ:

  • Для Enter на цифровой клавиатуре используйте Application.OnKey "{ENTER}", "pressEnter"
  • Для нормального входа используйте Application.OnKey "~", "pressEnter"

см Application.OnKey Method (Excel)

Имейте в виду, что другие таких как ^+b означает ctrl + shift + b. Убедитесь, что Public Sub pressEnter() находится в модуле , а не в ThisWorkbook. Если он не работает в Workbook_Open(), попробуйте вместо этого Workbook_Activate().

+0

Он работает сейчас, большое вам спасибо за ваше время! – Joliba

+0

@Joliba Пожалуйста, отметьте этот ответ как решение, чтобы другие люди могли видеть, что этот вопрос решен. –