【问题标题】:Keyboard shortcut inside a module to call itself模块内用于调用自身的键盘快捷键
【发布时间】:2021-09-07 10:14:13
【问题描述】:

我正在创建一个 excel 模块来将工作簿中的任何表格导出为 .csv

我的模块生成一个用户表单,用户可以在其中选择要在组合框中导出哪个表,然后单击“导出”

一切正常,但我必须在我的工作簿中创建一个按钮并在点击时调用我的模块。

但是,我希望通过导入模块并使用键盘快捷键“Ctrl+R”等运行它来保持在任何工作簿中的设置非常简单。

我对此进行了很多搜索,但始终没有找到,这可能吗?

【问题讨论】:

  • 你可以应用一个技巧。使用宏记录器并使用键盘快捷键Ctrl+R 录制一个简单的宏,然后将您的工作代码复制并粘贴到该宏中。现在您可以通过键盘快捷键调用您的代码。
  • 是的,这很聪明,但我需要为每个工作簿都这样做,对吗?就我而言,我需要制作一个独立的模块。
  • 嗨,如何使用带有快捷方式的“母亲”工作簿,然后通过选择它在其他工作簿中运行代码?就像在 workbook.name(1) 中运行代码并在 workbook.name(2) 中更改内容一样。
  • 它仍然很聪明,但不可能要求我的同事始终在同一个文件夹中有 2 个工作簿来导出 .csv。我想提供该模块并将其导入您的工作簿中,您可以通过按 CTRL+R 来运行该模块,而无需用户进行任何其他设置

标签: excel vba module userform shortcut


【解决方案1】:

是的,您可以随心所欲。首先将您的模块导入新的 Excel 工作簿,然后通过将代码复制到 ThisWorkbook 区域来为 Workbook_Open 事件分配键盘快捷键。

Sub MyMacro()
    MsgBox ("ok")
End Sub

在 ThisWorkbook 区域(在 Microsoft Excel 对象/项目窗口中)

Private Sub Workbook_Open()
Application.MacroOptions Macro:="MyMacro", Description:="", ShortcutKey:= _
        "a"
End Sub

此代码将 Ctrl+"Defined_Letter" 快捷方式分配给您的 MyMacro 宏。在这种情况下,代码的快捷键是[Ctrl+a]。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多