gpt4 book ai didi

vba - 在 VBE 窗口中分配快捷键

转载 作者:行者123 更新时间:2023-12-02 10:13:21 36 4
gpt4 key购买 nike

在 Excel 窗口中,我可以通过以下方式为宏分配快捷键:

  1. 前往“开发者”选项卡
  2. 触摸按钮
  3. 触摸出现的对话框中的选项...

enter image description here

我可以从 VBE 窗口内分配它,而是使用 VBE 菜单栏吗?

最佳答案

Application.OnKey 方法将快捷方式与过程分开(这使得维护变得困难),并且您最终可能会遇到冲突 - 特别是如果您使用宏对话框分配键 Application.OnKey 属性。当然,您需要在 workbook_open 上运行 SetShortCutKeys 代码,该代码可能并不总是运行。

幸运的是,可以在 VBA 中和过程本身中分配快捷键,但您需要导出模块,编辑文本文件,然后重新导入。不幸的是,虽然 VBA 确实维护了代码,但快捷键似乎只能在 Excel 中使用。也许这是主机应用程序可以选择支持的 VBA 功能。

假设您的标准模块中有以下 VBA:

Option Explicit

Public Sub Bar()
MsgBox "Bar"
End Sub

如果您使用 Excel 中的宏对话框,并将 Bar 宏的快捷键选择为 Ctrl+Shift+T,然后将模块导出为文本文件,你会发现模块源是:

Attribute VB_Name = "Module1"
Option Explicit

Sub Bar()
Attribute Bar.VB_ProcData.VB_Invoke_Func = "T\n14"
MsgBox "Bar"
End Sub

请注意 Attribute Bar.VB_ProcData.VB_Invoke_Func = "T\n14" 属性,该属性在 VBIDE 中不可见,但由 VBA 保留在基础源中。 T\n14 中的 T 是区分大小写的键(暗示 Shift),并且>我认为 \n14 必须引用 Ctrl 键。通过遵循 VB 属性命名模式和语法,并在其他程序中包含类似的行,您可以使用文本编辑器在其他程序中分配快捷键,然后,完成后,您可以将修改后的模块导入回VBA 项目。

请注意,一旦导入修改后的模块,您将无法再看到属性行,并且需要注意不要更改中的参数名称或数量过程,因为 VBIDE可能会在不警告您的情况下删除底层属性。

关于vba - 在 VBE 窗口中分配快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23856071/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com