2016-02-06 2 views
0

Я пытаюсь связать макрос с комбинациями клавиш в Excel 2010 (v14.0).Application.OnKey Ctrl Shift 0

В ThisWorkbook коде Я:

Option Explicit 

Private Sub Workbook_Open() 
    Application.OnKey "^+1", "Foo" 
    Application.OnKey "^+0", "Bar" 
End Sub 

В Module1 код:

Option Explicit 

Sub foo() 
    MsgBox "hello" 
End Sub 

Sub bar() 
    MsgBox "world" 
End Sub 

Когда я нажимаю CTRL +SHIFT + Excel говорит "привет" , Когда я нажимаю CTRL +SHIFT + Excel делает не сказать "мир".

Я не могу получить Application.OnKey для работы с^+ 0 для любого макроса. Есть ли способ сделать это? Почему код не работает?

ответ

0

Вы приравниваете встроенные команды меню к пользовательским подпрограммам. Они не взаимозаменяемы с методом Application.OnKey, но пользовательский макрос может быть легко создан, что дублирует функциональность встроенной команды.

В модуле код листе:

Sub myUnHideColumns() 
    With Selection 
     .EntireColumn.Hidden = False 
     'alternate toggle visible/hidden 
     '.EntireColumn.Hidden = Not .EntireColumn.Hidden 
    End With 
End Sub 

Sub myHotKeys() 
    Application.OnKey "^+0", "myUnHideColumns" 
End Sub 

В вашем случае вы хотите переместить затрагивающую код из myHotKeys в макрос Workbook_Open событий.

+0

Вы полностью проигнорировали мой вопрос и поручили мне сделать то, что не работает. «Есть ли трюк для Ctrl + Shift + 0? Это полностью недоступно? Почему?» – Adam

+0

Извините, что вы не смогли реализовать это. Я не отправляю непроверенный код. Удачи с вашим проектом. – Jeeped

+0

Мне было бы очень интересно узнать о вашей конфигурации системы, потому что я реализовал именно то, что вы сказали на трех разных компьютерах, и не работал ни на одном из них. – Adam

1

В дополнение к ответу Jeeped в:

Alt - H - O - U - L позволяет отобразить столбцы в Excel 2016. C скрывает их.

И вы могли бы заменить следующие в коде Jeeped в:

Commandbars("Column").Controls("Unhide").Execute.

Не знаю, что это какое-то улучшение по сравнению с EntireColumn.Hidden = False, но что за черт.

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