【问题标题】:Can I make a MacroOptions shortcut work in active workbook when another workbook is open with the same shortcut当另一个工作簿使用相同的快捷方式打开时,我可以让 MacroOptions 快捷方式在活动工作簿中工作吗
【发布时间】:2020-10-03 00:03:10
【问题描述】:

添加了以下段落以解释该问题,但没有详细说明。 快捷键 (Ctrl+Shift+Z) 存在于两个工作簿中,并且在单独打开时都按预期工作。但是,如果两个工作簿都打开,则快捷方式总是失败并且总是在同一个工作簿中。打开工作簿的顺序无关紧要。

以下命令已在两个不同的工作簿中执行。执行的公共子例程名称不同,只存在于各自的工作簿中。

Application.MacroOptions Macro:="SelectAndReveal", ShortcutKey:="Z"  'Ctrl+Shift+Z

开盘顺序无关紧要; wkbkA 然后 wkbkB wkbkB 然后 wkbkA。该快捷方式仅适用于 wkbkA。如果 wkbkA 关闭,它会立即开始按预期在 wkbkB 中工作。

此代码甚至被添加到 wkbkB 的“ThisWorkbook”中,编译并保存。如果 WkbkA 是打开的,它在 wkbkB 中仍然不起作用。

Private Sub Workbook_open()
   Application.MacroOptions Macro:="SelectAndReveal", ShortcutKey:=""   'Clear Shortcut
   Application.MacroOptions Macro:="SelectAndReveal", ShortcutKey:="Z"  'Ctrl+Shift+Z
End Sub

必须在 Workbook_Activate 和 Workbook_Deactivate 事件中设置和清除快捷方式以确保快捷方式有效吗?为什么它在活动工作簿中不起作用,或者至少在打开的最后一个工作簿中不起作用?

PS。我想使用 Ctrl+Shift+Z,因为我记得只有两个 Ctrl 或 Ctrl+Shift 击键不与 Excel 或系统竞争。另外,另一个按键需要两只手。

仅供参考:它仅在 wkbkA 处于活动状态时在 wkbkA 中执行。

最后的脚注:在今天遇到这个问题之前,MacroOptions 命令已经设置了一次。自从第一次执行后就没有被代码执行过。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    解决方法是在工作簿失去焦点(不再活动)时清除快捷方式,并在重新获得焦点时将其重置。

    好的,这是一个非常小的错误。这个错误是如何表现出来的很奇怪。当打开两个工作簿时,快捷方式始终在一个工作簿中工作,但从不另一个工作簿,无论工作簿打开的顺序如何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      • 2013-08-16
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      相关资源
      最近更新 更多