VBA:application.onkey无法正常工作

时间:2017-02-22 08:07:01

标签: vba excel-vba keypress excel

我在VBA上有一个看似简单的代码,试图创建一个按Enter键触发的事件。 所以这是我在工作簿中的代码:

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 个答案:

答案 0 :(得分:2)

您需要指定一个键:

  • 对于数字键盘上的Enter,请使用Application.OnKey "{ENTER}", "pressEnter"
  • 正常输入使用Application.OnKey "~", "pressEnter"

请参阅Application.OnKey Method (Excel)

请注意,^+b等其他键表示 ctrl + shift + b 。确保Public Sub pressEnter()位于模块中,而不是ThisWorkbook中。如果它不适用于Workbook_Open(),请尝试Workbook_Activate()