最近做了一個Excel的多級聯動的功能,具體是將全國所有的氣象局按一二三四級單位做成四列,實現各級的聯動下拉選擇,這和省市縣鄉的各級聯動的功能基本一樣,下麵記錄下具體的操作步驟。 1、首先需要從資料庫中將所有單位按照Id ,父級ID ,單位名稱,導出excel, 2、將所有單位中的一級單位單獨取出作 ...
最近做了一個Excel的多級聯動的功能,具體是將全國所有的氣象局按一二三四級單位做成四列,實現各級的聯動下拉選擇,這和省市縣鄉的各級聯動的功能基本一樣,下麵記錄下具體的操作步驟。
1、首先需要從資料庫中將所有單位按照Id ,父級ID ,單位名稱,導出excel,
2、將所有單位中的一級單位單獨取出作為新的一列放置。我這裡的操作方法是用excel中的VBA進行編碼操作。前提是excel需要啟用巨集設置,下麵是啟用巨集設置的方法:
(1)將excel另存為啟用巨集的工作簿 然後打開保存的啟用巨集的工作簿
(2)點擊左上方的文件-選項-信任中心-信任中心設置-巨集設置-啟用-確認
3、點擊一個sheet 郵件選擇查看源碼
4、按圖示插入窗體和按鈕修改按鈕的名稱為一級單位
6、雙擊按鈕或者右鍵查看代碼 就能夠編寫點擊這個按鈕以後需要做的工作的代碼了 ,瞬間感覺這個操作和.net的winform差不多
7編寫代碼 將一級單位名稱,一級單位Id,因為一級單位的父ID是同一個,所以這裡就不把他的父Id給單獨拿出來了
8、同樣添加二級單位。三級單位、四級單位的按鈕,分別添加對應的代買,因為其中的代碼基本一樣,只是取得列和父Id的列不一樣,這裡就只貼出二級單位的代碼
9.添加完以後點擊運行,分別點擊各個單位的按鈕,就在sheet1中自動生成了對應單位級別的列,並將對應的單位給填充進對應的列上。
10、到這裡前期準備工作就完成了,接下來在excel公式中點擊名稱管理器,添加一級單位的名稱和對應的取值範圍。
11、選中對應一級單位的單元格,點擊數據下麵的數據驗證,在設置中的驗證條件選中允許,來源=剛纔設置的名稱管理器中的名稱,此時選中的單元格就會出現下拉框選擇,選擇的內容就是設置名稱管理器中的一級單位對應的引用位置(取值範圍)
12、接下來我們添加二級三級四級單位的名稱,由於一級單位數量相對比較少,也比較連續,上面添加名稱的方式比較簡單,但是下級單位比較多,添加起來就比較麻煩,並且所屬的父級單位需要一個一個的找,工作量比較大,所以這裡還是用VBA代碼將剩下添加名稱的動態的給添加上,這樣就減少了很大的工作量,繼續在窗體中添加按鈕,修改名稱,雙擊查看對應的操作代碼,添加代碼,這裡同樣貼出一個代碼樣例。是生成二級名稱的
13、選中對應二級單位對應的單元格,點擊數據有效性,設置和一級單位基本一樣,不過來源那裡需要根據選中的一級單位的名稱進行篩選,使用=INDIRECT($A3),其中$A3為一級單位所選擇的名稱,INDIRECT函數返回指定的區域,依次類推,剩下級別的單位也這樣設置
致此,所有的工作已經做完。我們來看下效果:
註意事項:二級、三級單位必須是按上級單位的順序排列,否則數據取起來會不准確。也比較麻煩,這個demo給大家做一個參考,希望對以後或者其他的工作有所幫助