【发布时间】:2012-04-06 18:20:48
【问题描述】:
当我在 VBA 编辑器中按 F5 时,我总是想运行我的“Sub Skynet()”程序。有没有办法给这个过程分配一个键盘快捷键。
【问题讨论】:
标签: excel vba keyboard-shortcuts
当我在 VBA 编辑器中按 F5 时,我总是想运行我的“Sub Skynet()”程序。有没有办法给这个过程分配一个键盘快捷键。
【问题讨论】:
标签: excel vba keyboard-shortcuts
F5 是在 VBA 编辑器中运行宏的标准快捷方式。我认为您不能在编辑器本身中添加快捷键。如果你想从 excel 运行宏,你可以从那里分配一个快捷方式。
在 excel 中按 alt+F8 打开宏对话框。选择要为其分配快捷键的宏并单击选项。在那里您可以为宏分配快捷方式。
【讨论】:
在“工具”菜单上,指向“宏”,然后单击“宏”。
在“宏名称”框中,输入要分配给键盘快捷键的宏的名称。
点击选项。
如果您想通过按键盘快捷键运行宏,请在快捷键框中输入一个字母。您可以使用 CTRL+ 字母(小写字母)或 CTRL+SHIFT+ 字母(大写字母),其中字母是任意字母键在键盘上。快捷键不能使用数字或特殊字符,如@或#。
注意:当包含宏的工作簿打开时,快捷键将覆盖任何等效的默认 Microsoft Excel 快捷键。
如果您想包含宏的描述,请在“描述”框中键入。
点击确定。
点击取消。
【讨论】:
Shift 和Application.Workbooks.Open(path) 时要小心,似乎有一个已知的错误导致vb 脚本挂起。在此处查看详细信息:stackoverflow.com/questions/17409524
要为工作表上的按钮分配键盘键,您可以使用此代码,只需将此代码复制到包含该按钮的工作表即可。
这里Return 指定键,get_detail 是过程名称。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "{RETURN}", "get_detail"
End Sub
现在,只要您按下 Enter 按钮,就会在此工作表中调用分配的宏。
【讨论】:
OnKey 和 Workbook_Open 的组合让我创建一个适用于每台机器的组合。
以下是如何为 Word 2013 中的自定义宏分配键盘快捷键。 场景是您创建了一个名为“fred”的宏,并且您希望通过键入 Ctrl+f 来执行该宏。
默认情况下,分配保存在 Normal.dotm 文档模板中。如果此键盘分配对该文档是唯一的,那么您可能希望将“保存更改”下拉菜单更改为您的文档名称。
【讨论】:
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
【讨论】:
我自己也遇到了这个问题。我唯一的解决方案是先将宏记录在 Excel 工作簿中。然后,将模块从打开的工作簿拖放到加载项模块中。这将是上述模块的副本,但您分配给它的键盘快捷键将幸好保留下来。
我只是记录了一个垃圾宏并将其移到那里,然后从我的真实模块后记中复制代码。
很高兴能弄清楚这一点,我觉得我必须回复我在这个主题上找到的 5 年前的帖子!!!
【讨论】:
我遇到的问题是我想将快捷键与 xlam 中没有可见界面的宏相关联。我发现以下工作有效
将快捷键与宏关联
在开发人员选项卡上的 Excel(不是 VBA)中 单击宏 - 不会显示宏 键入子的名称 然后应启用选项按钮 点击它 Ctrl 将是默认值 按住 Shift 并按您想要的字母 例如 Shift 和 A 将 Ctrl-Shift-A 与 Sub 关联
【讨论】:
您可以在 VBA 编辑器环境中添加一些 ALT+字母快捷键。我添加了 ALT+C 来注释选定的文本行,并添加了 A+X 来取消注释选定的文本行:
有些内置的 Alt+Letter 命令不能用于使用字母的新快捷键:A、D、E、D、H、I、O、Q、R、T、V、W。
【讨论】:
像这样写一个 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
然后转到开发人员选项卡,宏,选择宏,单击选项,然后添加快捷方式字母或按钮。
【讨论】: