如何热键当前 sheet 的 VBA 代码?

How do I hotkey current sheet's VBA code?

我遇到了 Worksheet_SelectionChange(ByVal Target As Range) 每次点击某些东西时都会触发的问题,这是我不想要的,因为这意味着我每次点击实际内容时都必须等待 sheet.我将代码更改为 Worksheet_Open,但这意味着每当我希望代码变为 运行.

时,我必须单击 运行 按钮

所以我正在寻找一种方法,当我想查看 [=19] 时,只 运行 宁当前 sheet 的 VBA 代码=](当我在 VBA 编辑器中时)。理想情况下,我可以使用 Application.OnKey 将其分配给热键,但我不知道如何引用 sheet 的代码本身。我找到的唯一解决方案是指外部宏,这没有帮助,因为我只想使用 sheet 中已有的代码,因为我为每个 sheet 在工作簿中。

在你设置热键的模块中创建一个宏,这个宏会调用你需要的:
CallByName ActiveSheet, ActiveSheet.Name & "Macro", VbMethod

因此需要在每个sheet中以SheetNameMacro的格式命名宏。

更多解释:Trying to call a Sub with a String - VBA

更新

如果您的 sheet 名称包含空格,则使用此:
CallByName ActiveSheet, Replace(ActiveSheet.Name," ","_") & "Macro", VbMethod
当然还要替换 sheet 中的空格(例如,如果您的 sheet 称为 "list to delete",则宏名称应为 list_to_deleteMacro.