在“工具”菜单上,将鼠标指向“宏”,然后单击“宏”。
在“宏名称”框中输入要分配键盘快捷方式的宏名称。
单击“选项”。
如果您想通过按键盘快捷键来运行宏,请在“快捷键”框内输入一个字母。可以使用CTRL+字母(小写字母)或CTRL+SHIFT+字母(大写字母),其中字母是键盘上的任何字母键。快捷键不能使用数字或特殊字符,例如@
或#
。
注意:当包含宏的工作簿打开时,快捷键将覆盖任何等效的默认Microsoft Excel快捷键。
如果要包括有关宏的说明,请在“说明”框中输入说明。
单击“确定”。
单击“取消”。
你可以使用以下代码将键盘按键分配给工作表上的按钮,只需将此代码复制到包含该按钮的工作表中。
这里的 Return
指定了按键,get_detail
是过程名称。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "{RETURN}", "get_detail"
End Sub
现在,在这张表格中,每当您按下Enter键时,将调用分配的宏。
OnKey
和Workbook_Open
,我能够创建一个在每台机器上都能正常工作的组合。 - ZygDF5是在VBA编辑器中运行宏的标准快捷键。我认为您无法在编辑器本身中添加快捷键。如果您想从Excel运行宏,可以从那里分配快捷键。
在Excel中按下Alt + F8打开宏对话框。选择要分配快捷键的宏,然后单击“选项”。在那里,您可以将快捷方式分配给该宏。
功能键(F1,F2,F3,F4,F5等)可以使用以下代码分配给宏:
Sub A_1()
Call sndPlaySound32(ThisWorkbook.Path & "\a1.wav", 0)
End Sub
Sub B_1()
Call sndPlaySound32(ThisWorkbook.Path & "\b1.wav", 0)
End Sub
Sub C_1()
Call sndPlaySound32(ThisWorkbook.Path & "\c1.wav", 0)
End Sub
Sub D_1()
Call sndPlaySound32(ThisWorkbook.Path & "\d1.wav", 0)
End Sub
Sub E_1()
Call sndPlaySound32(ThisWorkbook.Path & "\e1.wav", 0)
End Sub
Sub auto_open()
Application.OnKey "{F1}", "A_1"
Application.OnKey "{F2}", "B_1"
Application.OnKey "{F3}", "C_1"
Application.OnKey "{F4}", "D_1"
Application.OnKey "{F5}", "E_1"
End Sub
在另一个模板中,我们使用Ctrl+F1键打开了用户窗体,以剪切和移动所选行:
Sub Auto_Open()
Application.OnKey "^{F1}", "Show"
End Sub
Sub Show()
Cut_Row.Show
End Sub
Sub E_1()
Call sndPlaySound32(ThisWorkbook.Path & "\e1.wav", 0)
Range("AG" & (ActiveCell.Row)).Select 'go to column AG in the same row
End Sub
然后进入开发人员选项卡,宏,选择宏,点击选项,然后添加快捷键或按钮。
我也曾遇到过这个问题。我唯一的解决方案是先在 Excel 工作簿中记录宏,然后将模块从打开的工作簿中拖放到“插件模块”中。这将是上面模块的一个副本,但你为其分配的键盘快捷键将幸好保留。
我只是记录了一个无用的宏,然后将其移入其中,最后再将真实模块的代码复制进去。
终于找到了解决方法,感觉太棒了,我必须回复那些五年前发表的帖子!!!
Shift
和Application.Workbooks.Open(path)
时要小心,因为似乎存在已知的 bug 会导致 VB 脚本卡住。详见:https://dev59.com/xnPYa4cB1Zd3GeqPpPWO - ForceMagic