2017-04-19 30 views
2

我在 '的ThisWorkbook' 對象以下代碼:Application.OnKey誤差以 「%一」 擊鍵

Sub Workbook_Open() 
    Application.OnKey "^a", "SS_1" 
    Application.OnKey "^%a", "SS_1" 
    Application.OnKey "%a", "SS_1" 
End Sub 

在一個單獨的模塊,我有以下代碼:

Sub SS_1() 
MsgBox "Hello" 
End Sub 

"^a""^%a"鍵擊均完美地執行SS_1,並出現MsgBox。

但是,"%a"按鍵看起來什麼都不做,並且沒有顯示任何消息框。

是否有任何獨特的因素,我不知道這會導致此擊鍵操作不同於其他擊鍵?

預先感謝您的幫助,

斯科特

+0

'按Ctrl + Shift +了'不適合我的工作。你確定它適合你嗎? – Vityata

+1

我還沒有試過'Ctrl + Shift + a'。我只嘗試過「Ctrl + a」,「Ctrl + Alt + a」和「Alt + a」。 – scttsmn

+0

這裏指定多個快捷方式到同一個宏是什麼意思? – sktneer

回答

1

這個工作對我來說:

Option Explicit 

Public Sub TestMe() 

    Application.OnKey "^a", "Macro1" 
    Application.OnKey "^%a", "Macro2" 
    Application.OnKey "%a", "Macro3" 

    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)" 

End Sub 

Public Sub Macro1() 

    Debug.Print "Pryc" 

End Sub 

Public Sub Macro2() 

    Debug.Print "Pryc2" 

End Sub 

Public Sub Macro3() 

    Debug.Print "Pryc3" 

End Sub 

Public Sub UnTestMe() 'Run this to disable the shortcuts. 

    Application.OnKey "^a" 
    Application.OnKey "^%a" 
    Application.OnKey "%a" 

    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)" 

End Sub 

編輯: 爲了確保作品,你應該隱藏功能區。否則,它會在功能區上找到一些東西,與A一起使用,並將其用作屏幕截圖。

試試這個隱藏功能區: Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"

試試這個返回它: Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"

+1

嘗試了此代碼,但結果相同 - '%a'似乎沒有指定關鍵筆劃。我試了你的代碼,爲所有26個字母的字母,只有以下字母工作:「b」,「c」,「g」,「j」,「k」,「q」,「s」,「u」 ,「y」和「z」。某些其他組合鍵似乎表現正常(例如'%h',按下時會激活功能區中的「主頁」選項卡)。 Excel中是否有任何其他後臺進程會覆蓋我的宏並阻止我能夠使用其他16個字母的字母? – scttsmn

+1

我找到了爲什麼我能夠做到這一點 - 請參閱編輯。通常,在Excel中使用鍵盤上的許多按鍵。如果我必須使用快捷鍵,只要不知何故,我會使用Ctrl + e。但我想你可能有充分的理由使用'Alt + a'。 – Vityata

+1

通過此編輯,熱鍵現在可以像魅力一樣工作。我應該能夠在短期內爲我自己的目的做這項工作。但是,從長遠來看,您是否預見到任何不涉及隱藏功能區的解決方案?如果在將來某個時候,我想分享這個宏,我不想要求用戶隱藏他們的絲帶。 – scttsmn