分配快捷键并隐藏宏

时间:2013-07-06 04:57:50

标签: excel vba key shortcut

我处于死胡同,我一直试图隐藏所有的宏,我已经能够做所有没有私有Sub分配的短密钥的宏,但每当我在一个拥有一个宏的宏上使用Private时快捷键分配它不起作用,实际上它禁用了快捷键

我试过了

Private Sub Workbook_Open()
Application.OnKey "+Q", "Macro1"
End Sub

并且这不起作用,是的,我把它放在这个工作簿中.....当然如果我从宏中取出私有并运行它工作正常。我试过 ^ + Q ,这也不起作用

必须有办法,不存在吗?

1 个答案:

答案 0 :(得分:3)

两件事:

首先,如果您需要大写“Q”,那么您需要这样做:

Application.OnKey "^+Q", "Macro1"

此外,没有必要使宏私有以便从功能区/宏菜单中隐藏它们。这是我使用的解决方法:

如果至少需要一个参数,任何宏/子程序都将被“隐藏”(不会显示在功能区/菜单的宏列表中)。因此,一个解决方法是为每个子例程添加一个可选的,无意义的参数,然后您可以将它们保留为公共子函数。

示例:

Sub Macro1(Optional dummy)
    MsgBox "Hi!"
End Sub

上面的宏应该出现在可用宏列表中,但它仍然适用于您的热键。

相关问题