为运行过程指定键盘快捷键

use*_*776 36 excel vba keyboard-shortcuts

当我在VBA编辑器中按F5时,我总是想运行我的"Sub Skynet()"程序.有没有办法为此过程分配键盘快捷方式.

小智 35

根据微软的文档

  1. 在"工具"菜单上,指向"宏",然后单击"宏".
  2. 在"宏名称"框中,输入要分配给键盘快捷键的宏的名称.
  3. 单击选项.
  4. 如果要通过按键盘快捷键来运行宏,请在"快捷键"框中输入一个字母.您可以使用CTRL+字母(对于小写字母)或CTRL+ SHIFT+字母(对于大写字母),其中字母是键盘上的任何字母键.快捷键不能使用数字或特殊字符,例如@#.

    注意:当包含宏的工作簿打开时,快捷键将覆盖任何等效的默认Microsoft Excel快捷键.

  5. 如果要包含宏的说明,请在"说明"框中键入它.

  6. 单击确定.
  7. 单击取消.

  • 作为旁注@ user1283776,在使用`Shift`和`Application.Workbooks.Open(path)`时要小心,似乎有一个已知的错误使vb脚本挂起.请在此处查看详细信息:http://stackoverflow.com/questions/17409524 (3认同)
  • 从VBE看来这可能不再可行。我是通过功能区完成的:开发人员->宏-> YourMacroName->选项。这似乎有效。 (3认同)

小智 30

要将键盘键分配给工作表上的按钮,您可以使用此代码,只需将此代码复制到包含该按钮的工作表即可.

这里Return指定密钥并且get_detail是过程名称.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Application.OnKey "{RETURN}", "get_detail"

End Sub
Run Code Online (Sandbox Code Playgroud)

现在,只要按下Enter按钮,就会在此工作表中调用指定的宏.

  • 也许最好将此代码设置为"Workbook_open"事件. (5认同)
  • 这个答案提供了更多灵活性 (2认同)
  • "OnKey"和"Workbook_Open"的组合让我创建了一个适用于每台机器的组合. (2认同)