【问题标题】:Different workbooks, same macro names and activation shortcuts不同的工作簿、相同的宏名称和激活快捷方式
【发布时间】:2017-09-12 18:47:45
【问题描述】:

我有 2 个Workbooks。它们包含不同的数据和表格,但有一些相同的宏名称,它们由相同的键盘快捷键运行。 例如:两者都有 Sub ArrangeTitles() 宏,由 Ctrl+Shift+R 调用。这些 Subs 里面的 vba 代码是不同的。

两个工作簿都打开并且用户按下 Ctrl+Shift+R,有时运行错误的 Sub(“其他 Workbook 的 Sub”),这是根据打开 Workbooks 的顺序。

我的目标是能够在不更改任何名称或快捷方式的情况下激活属于正确工作簿正确宏

我一直在网上寻找解决方案,但没有成功。 所以我想出了某种效果很好的旁路解决方案。 我很快就会在这里添加答案。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    解决方案基于将每个macro 附加到其ActiveWorkbook.Name

    对于每个工作簿和每个“有问题的”宏(例如:我的Sub ArrangeTitles),请执行以下操作:

    在 Excel“查看”标签 -> 宏:

    1. 断开Sub ArrangeTitles 与其键盘激活Ctrl+Shift+R 的连接。

    在 VBA 代码处:

    1. 可选:将ArrangeTitles Sub 更改为Function

    2. 可选:添加新模块以包含我的所有新“连接子”,例如:

    3. 添加:
    Sub Ctrl_Shift_R()
        Dim strPath As String
        strPath = "'" & ActiveWorkbook.Name & "'" & "!ArrangeTitles"  ' The target macro within it's current wWorkbook
        Application.Run (strPath)
    End Sub
    

    然后回到 Excel“查看”标签 -> 宏:

    1. macro Ctrl_Shift_R 连接到键盘激活:Ctrl+Shift+R。
    2. 保存。

    3. 指示用户在使用 Ctrl+Shift+R 之前单击工作簿中的某个位置。

    【讨论】:

      猜你喜欢
      • 2015-03-15
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 2019-11-19
      • 2016-10-26
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      相关资源
      最近更新 更多