Excel VBA 實例(31) - 爲VBA代碼自定義快捷鍵

這幾天遇到一個有點特別的需求。

需求

估計這位朋友是一位科研人員,在進行研究的過程當中,兩隻手沒法同時進行鍵盤輸入操作:右手需要擺弄和查看樣品,只能用左手在鍵盤上進行敲擊輸入

他研究的樣品一共有三種,標記爲s,d,f三類。他需要做的事情是:右手邊查看樣品,左手在Excel中做記錄(即樣品對應的單元格中輸入s,d,f三個字母中的一個,同時單元格標記顏色),如下圖:

很顯然,每個樣品記錄的過程包括輸入數據(s,d,f),填充單元格顏色(紅,藍,綠),定位到下一個單元格等3個操作。

這位朋友每天操作的樣品都有成百上千個,每天都要花費大量的時間來記錄,故而向永恆君求助。

思路

其實,這位朋友就是想說,能否左手直接按一個鍵即可進行上述分類操作?

當然可以!

這次需要藉助Onekey方法來爲VBA自定義快捷鍵,幾乎可以定義鍵盤上所有的按鍵。

首先,上面提到的樣品記錄的過程的3個操作可以用vba代碼來實現;

然後,爲這個VBA代碼自定義一個快捷鍵,比如按下鍵盤"s"鍵,直接就實現了“輸入數據-填充單元格顏色-定位到下一個單元格”這個動作。再將這個設置一打開excel就自動自定義快捷鍵,即設置爲工作簿事件。

解決

以記錄s類型爲例

1、編寫vba代碼,名稱爲spro

Subspro()

ActiveCell.Value ="s"

ActiveCell.Interior.Color =RGB(255,0,0)

ActiveCell.Offset(1,0).Activate

EndSub

2、爲這個VBA代碼自定義一個快捷鍵s,即按下鍵盤s鍵,執行上述spro的vba代碼。

PrivateSubWorkbook_Open()

Application.OnKey"s","spro"

EndSub

注意,這個代碼要放在Thisworkbook當中,因爲是工作簿事件。

效果(鍵盤按s)

同理可以爲d,f兩個類別分別進行設置,最終的效果(鍵盤只按s,d,f三個鍵):

說明

OnKey方法的作用是當某個特定按鍵或者組合按鍵被用戶按下時,運行指定的過程。類似在windows系統中,按下“Ctrl+C”組合按鍵,就可以將所選擇的內容複製到粘貼板,其實這就是當特定的組合按鍵(“Ctrl+C”)被按下時,運行指定的過程(將所選擇的內容複製到粘貼板 )。

基本的語法是:

Application.OnKey(Key, Procedure)

翻譯成人話就是:

Application.OnKey(某個按鍵(組合), 某個程序)

Key 參數可由一個或多個字符表示,比如 "a" 表示字符a,"{ENTER}" 表示 Enter。

若要指定按對應的鍵(例如 Enter 或 Tab)時的非顯示字符,可以使用下表所列出的代碼。表中的每個代碼表示鍵盤上的一個對應鍵。

如果需要使用組合鍵,比如"shift+V",則表示爲"+V";"Ctrl+V",則表示爲"^V"。

感興趣的可以在公號內回覆「自定義」自取試用,儘快哈~~

如果覺得實用,點個“在看”並分享給更多的朋友吧!

你可能還會想看:

Excel VBA 實例(30) - 爲多個sheets創建目錄和超鏈接

Excel VBA 實例(29) - 快速實現合併單元格的填充

Excel如何將數據逐一拆分成單行?

Excel VBA 實例(28) - 批量生成word報告

歡迎交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章