如何给Excel自定义模块设置内部快捷键以调用自身运行
Excel VBA 导出模块快捷键唤起实现方案
该需求完全可以实现,不需要额外添加按钮,仅需在你现有的VBA模块中补充两段自动执行的代码,即可满足「导入即生效、快捷键唤起」的要求。
实现原理
依托Excel VBA两个原生特性即可完成:
Auto_Open过程:工作簿打开时自动运行,用于完成快捷键绑定Application.OnKey方法:指定快捷键对应的触发程序
操作步骤
- 打开你现有的导出功能模块,在模块空白处补充以下代码:
' 工作簿打开时自动绑定快捷键 Sub Auto_Open() ' 绑定Ctrl+R到你的导出启动过程,第二个参数替换为你实际的启动过程名 Application.OnKey "^r", "ShowExportForm" End Sub ' 工作簿关闭时解绑快捷键,避免干扰其他Excel进程 Sub Auto_Close() Application.OnKey "^r", "" End Sub
- 将代码中
"ShowExportForm"替换为你实际用来唤起导出选择UserForm的过程名,也就是你之前绑定给按钮点击事件的过程名即可。 - 保存模块后即可生效,后续将该模块导入任意工作簿,只要用户启用宏,按下Ctrl+R就可以直接唤起导出选择界面,不需要额外添加任何按钮。
可选调整项
- 若快捷键冲突可以自定义组合:
^代表Ctrl,%代表Alt,+代表Shift,如需绑定Ctrl+Shift+R可以写为"^+r" - 如果不想强制绑定快捷键,也可以删除
Auto_Open过程,告知用户导入模块后,可在「开发工具」→「宏」→选中导出启动过程→点击「选项」手动设置快捷键。
内容的提问来源于stack exchange,提问作者Patouf
相关产品推荐
相关产品推荐

