2013-07-06 2 views
2

Я нахожусь в тупике, я пытался скрыть все макросы, я смог выполнить все макросы, у которых НЕ есть короткий ключ, назначенный Private Sub, но всякий раз, когда я использую Частный на макрос, который имеет сочетание клавиш присвоенной не не работает, на самом деле, он отключает комбинацию клавишназначить комбинацию клавиш и скрыть макрос

Я попытался

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

и что не работает, да я положил в этой книге ..... конечно, если я возьму Private из макроса и запустил его, он отлично работает. Я попытался ^ + Q и что не работает либо

там должен быть путь, не так ли?

ответ

3

две вещи:

Во-первых, если вам нужен капитал «Q», то вам необходимо сделать следующее:

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

Кроме того, нет необходимости делать макросы частный для того, чтобы скрыть их из меню ленты/макросов. Вот обходной путь, который я использую:

Любая макрос/подпрограмма будет «скрыта» (не отображается в списке макросов из ленты/меню), если требуется хотя бы один аргумент. Таким образом, одним обходным путем для вас является просто добавить необязательный, бессмысленный аргумент для каждой подпрограммы, а затем вы можете оставить их в качестве общих субтитров.

Пример:

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

выше макрос должен не появится в списке доступных макросов, но это должно работать с горячей клавиши.

+0

+1 большое и точное обходное решение. Вы когда-нибудь пробовали со скрытыми модулями? –

+0

@mehow нет, я не пробовал скрытые модули. Ссылка? –

+0

oh no nvm Я слишком увлекся :) –

Смежные вопросы