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

时间:2012-03-22 07:27:22

标签: excel vba keyboard-shortcuts

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

9 个答案:

答案 0 :(得分:34)

根据Microsoft's documentation

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

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

  5. 如果要包含宏的说明,请在“说明”框中键入。

  6. 单击“确定”。
  7. 点击取消。

答案 1 :(得分:26)

如果要将键盘键指定给工作表上的按钮,则可以使用此代码,只需将此代码复制到包含该按钮的工作表。

此处Return指定密钥,get_detail是过程名称。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

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

End Sub

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

答案 2 :(得分:3)

以下是如何在Word 2013中为自定义宏指定键盘快捷方式。 方案是您创建了一个名为“fred”的宏,并且您希望通过键入Ctrl + f。

来执行宏
  1. 点击文件,选项。
  2. 点击自定义功能区(从我的角度来看,这是非直观的步骤)。
  3. 点击“键盘快捷键:自定义”按钮。
  4. 在“类别”列表框中,向下滚动到按钮,然后选择“宏”。
  5. 宏列表框现在应显示自定义宏列表。选择“fred”。
  6. 点击“按新快捷键”文本框将其激活。
  7. 键入Ctrl + f。这应该出现在文本框中。
  8. 查看“当前密钥”列表框。在这种情况下,它显示“当前已分配给NavPaneSearch”。
  9. 如果您不介意覆盖该默认值,请单击左下方的“分配”按钮以指定“Ctrl + f:运行您的”fred“宏。
  10. 默认情况下,分配将保存在Normal.dotm文档模板中。如果此键盘分配对于此文档是唯一的,那么您可能希望将“保存更改”下拉列表更改为文档名称。

答案 3 :(得分:2)

F5是在VBA编辑器中运行宏的标准快捷方式。我认为你不能在编辑器中添加快捷键。如果要从excel运行宏,可以从那里指定快捷方式。

在excel中按alt + F8打开宏对话框。选择要为其分配快捷键的宏,然后单击选项。在那里你可以为宏指定一个快捷方式。

答案 4 :(得分:2)

F功能键( 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

答案 5 :(得分:0)

我自己遇到了这个问题。我唯一的解决方案是首先在excel工作簿中记录宏。然后,将MODULE从打开的工作簿拖放到加载项模块中。这将是上述模块的副本,但您分配给它的键盘快捷键将幸运地保留。

我只记录一个垃圾宏并将其移动到那里,然后从我的真实模块中复制代码。

感觉好极了这一点,我觉得我必须回复我在这个问题上发现的5年的帖子!

答案 6 :(得分:0)

您可以向VBA编辑器环境添加一些ALT + Letter快捷方式。我将ALT + C添加到Comment选定的文本行,将A + X添加到取消注释所选的文本行:

  1. 在VBE中,右键单击工具栏并选择“自定义”
  2. (可选)创建新工具栏
  3. 在“类别”列表框中选择“命令”选项卡和“编辑”。在“命令”列表框中找到“注释阻止”。单击并将其拖动到目标工具栏。左键单击它以打开上下文弹出菜单,然后选择“图像和文本”。将名称替换为& C。
  4. 对Uncomment Block命令重复步骤3,并将名称替换为& X。
  5. 关闭“自定义”弹出窗口。
  6. 内置的Alt + Letter命令不能用于使用字母的新快捷键:A,D,E,D,H,I,O,Q,R,T,V,W。

答案 7 :(得分:0)

编写一个vba proc,例如:

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

然后转到开发人员标签,宏,选择宏,单击选项,然后添加快捷字母或按钮。

答案 8 :(得分:-1)

我遇到的问题是,我想将一个快捷键与一个没有可见界面的xlam中的宏相关联。我发现以后工作

将快捷键与宏关联

在“开发人员”选项卡上的Excel(不是VBA)中 单击宏 - 将不显示任何宏 输入Sub的名称 然后应启用“选项”按钮 点击它 Ctrl将是默认值 按住Shift键并按下您想要的字母 例如Shift和A. 将Ctrl-Shift-A与Sub

相关联