Excel VBA:分配键盘快捷键来运行程序

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

为了将一个键盘按键分配给工作表上的button,您可以使用此代码,只需将此代码复制到包含该button的工作表。
这里Return指定键, get_detail是过程名称。

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.OnKey "{RETURN}", "get_detail" End Sub 

现在从工作表中每当你按下inputbutton分配的macros将被调用。

根据微软的文件

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

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

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

  6. 点击OK。
  7. 点击取消。

F5是在VBA编辑器中运行macros的标准快捷方式。 我不认为你可以在编辑器本身添加一个快捷键。 如果你想从excel运行macros,你可以从那里分配一个快捷方式。

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

以下是如何将键盘快捷键分配给Word 2013中的自定义macros。该场景是您创build了一个名为“fred”的macros,并且您想要通过键入Ctrl + f来执行该macros。

  1. 点击文件,选项。
  2. 点击自定义function区(从我的angular度来看,这是非直观的步骤)。
  3. 点击“键盘快捷键:自定义”button。
  4. 在类别列表框中向下滚动到button,然后selectmacros。
  5. macros列表框现在应该显示自定义macros的列表。 select“fred”。
  6. 点击“按新的快捷键”文本框使其生效。
  7. 键入Ctrl + f。 这应该出现在文本框中。
  8. 看看“当前键”列表框。 在这种情况下,它显示“当前分配给NavPaneSearch”。
  9. 如果您不介意覆盖该默认值,请单击左下angular的“分配”button以分配“Ctrl + f:运行”fred“macros。

默认情况下,分配保存在Normal.dotm文档模板中。 如果此键盘分配对于本文档是唯一的,则您可能希望将“保存更改”下拉列表更改为您的文档名称。

我自己遇到了这个问题。 我唯一的解决scheme是首先将macros写入Excel工作簿。 然后,将THE MODULE从打开的工作簿拖放到加载项模块中。 这将是上述模块的一个副本,但您分配给它的键盘快捷方式将庆幸地持续下去。

我只是logging一个垃圾macros,并将其移动到那里,然后从我的真实模块后字复制代码。

觉得这是伟大的解决这个问题,我觉得我不得不回复我在这个问题上find5年的旧post!

使用以下代码可以将Ffunction键(F1,F2,F3,F4,F5等)分配给macros:

 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 

上面的问题是我想把一个快捷键和一个没有可见界面的macros相关联。 我发现这个folllowing工作

将快捷键与macros相关联

在开发人员选项卡的Excel(而不是VBA)单击macros – 没有macros将被显示inputSub的名称然后应该启用选项button单击它Ctrl将默认按住Shift并按下你想要的字母,例如Shift和A会将Ctrl-Shift-A和Sub关联起来