【发布时间】: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 命令已经设置了一次。自从第一次执行后就没有被代码执行过。
【问题讨论】: