本文重點:
-- 定義名稱的快捷方式(不是快捷鍵)
-- 二級菜單中的BUG問題:選好了二級菜單,返回再選擇一級菜單,二級菜單不會發生變化,連個提醒都沒有!
先來看第一個問題:
之前在給大家介紹二級菜單的時候,是為了講解清楚如何去構建數據源,如何去使用快捷鍵來進行定義名稱,這裡忽略了一個更快捷的方式,就是名稱框。如果你需要定義的名稱太多,一列一列的去操作進行定義,勢必效率非常感人。
先來看看名稱框在哪裡?
箭頭所指的位置就是名稱框了,沒定義名稱的時候顯示的是滑鼠當前定位的單元格位置:
當然,如果你已經定義了名稱,就是這樣:
而且名稱旁邊的下拉箭頭,你可以點一下看看,是不是可以找到其他定義的名稱。如何迅速的給上圖中的兩列數據定義名稱呢?
首先全選:
當然四川下面有兩個空白的單元格,是不能入選的,所以用F5調出定位條件,選擇常量,確定之後就可以了。
選擇完成之後,在公式菜單欄中找到:
首行就是我們要定義的名稱,直接點擊確定。就這麼簡單,當然,這個肯定不包含首行在內了,剛才選中首行只是為了用個名字而已,通過定義名稱的對話框我們就可以看到:
再來看第二個問題:之前有講過用條件格式來解決這個問題,這裡再分享一個用VB來解決的方法,不會不要緊,知道怎麼搬來用,會改就行。先看效果:
只要一級菜單變了,或者說只要你動了一級菜單,哪怕你第二次還是選的同樣的一級菜單,二級菜單中的內容就會被清空。
用ALT+F11打開VB編輯器,雙擊左側的SHEET1,直接在空白區域輸入:
代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "E1" Then
Target.Offset(1, 0) = ""
End If
End Sub
解釋一個地方(你借鑑之後需要自己手動改動的地方):
E1代表的是一級菜單所在的單元格,那麼Target.Offset(1,0)表示的就是以E1單元格為起點,往下移動一行,這第一個參數中1是代表往下移動一行,0代表原地不動,負數就代表往上移動多少行,第二個參數0代表的是列數,正數代表往右,0代表不動,負數代表往左。
明白了這個你就可以拿去後根據你單元格的位置進行變化了。
VB不要怕,這麼多的資源,看懂一點,會改一下,拿來就是你自己的了,這個不香麼?
好了,如果本文對你有幫助,請分享給有需要的朋友或你的朋友圈,讓大家一起交流學習,共同進步。