2017-03-20 51 views
3

我的理解是:當單元格處於活動狀態以進行編輯時,無法激活宏。如何檢測ctrl +是否使用VBA在Excel電子表格中輸入

我擊中CTRL +進入通知,該小區去激活的編輯,但仍選擇。我想然後運行一些宏指向這個單元格。

因此,使用VBA,如何檢測,如果CTRL +進入按下?

+0

嗨,大家好,感謝您的及時回覆,但是,我仍然需要一個機制來檢測是否按下了「Ctrl + Enter」。因爲我已經爲其他函數使用了worksheet_change,並且只有在按下「Ctrl + Enter」的情況下才想觸發一些特殊功能。我曾嘗試使用Application.Onkey,它似乎只將我的功能分配給組合鍵,但不進行條件測試。再次感謝。 – vox

回答

4

最簡單的方法應該是使用工作表的Change事件。
這不會(只)檢測到一個ctrl + 輸入但任何更改單元格。

Private Sub Worksheet_Change(ByVal Target As Range) 

End Sub 

此子必須被添加到工作表代碼(不是模塊)!


另一種方法是使用OnKey方法

Application.OnKey "^{RETURN}", "InsertProc" 

在這裏看到一個像樣的解釋:Application.OnKey Method (Excel)

+0

您可能會說:不僅會檢測到Ctrl + Enter,還會檢測到單元格的任何更改。因爲這種讀法就像你說的那樣,它實際上不會檢測到Ctrl + Enter! –

+0

@RobinMackenzie好的,我改進了一下我的措辭。但它確實沒有直接檢測到Ctrl + Enter,它會檢測編輯模式的結束,而不管單元格內容是否更改。 –

+0

同意 - 它並沒有專門捕獲Ctrl + Enter - 只是有這種效果,因爲單元格更改。只是讓你的答案讀得更好! –

相關問題