Excel中如何實現(xiàn)級聯(lián)菜單
Office Excel是由微軟公司開發(fā)的一種電子表格程序,是微軟Office系列核心組件之一,可提供對于 XML 的支持以及可使分析和共享信息更加方便的新功能。
下面一起看學習Excel知識。
大家知道,在Excel中可以通過設置數(shù)據的有效性來實現(xiàn)類似于網頁表單中的下拉菜單功能,這樣可以大大地提高數(shù)據的錄入速度和可靠性。但采用此方法要求下拉菜單中的選項不能過多,否則會影響錄入的速度。如果這些選項內容之間可進行分類、分組,那我們就可以用多個下拉選項(即級聯(lián)菜單)來解決此類問題。下面我們就從一個實例出發(fā),給出在Excel中實現(xiàn)級聯(lián)菜單的兩種方法,希望能給使用Excel進行辦公的朋友提供幫助。一、自定義數(shù)據的有效性
兩個工作表,其中Sheet1用來采集客戶資料,并將其名稱改為“客戶數(shù)據采集”,在Sheet2的A列中保存了所有的省份,B列中的數(shù)據為各省份所屬的縣市并將工作表名稱改為“地區(qū)”(假設這里設置了三個省份,即江蘇省、浙江省和安徽省)。
1. 定義單元格區(qū)域名稱
選中“地區(qū)”表中江蘇省所屬縣市的單元格區(qū)域B2∶B14,依次單擊“插入”菜單中的“名稱”,選擇“定義”,彈出“定義名稱”對話框,在“在當前工作簿中的名稱”框中輸入所定義的名稱“江蘇”,單擊“確定”按鈕。類似地,我們可以將浙江省和安徽省所屬縣市的單元格區(qū)域名稱分別定義為“浙江”和“安徽”。
2. 設置數(shù)據的有效性
切換到“用戶數(shù)據采集”表中,選擇要選擇輸入省份的D列,單擊“數(shù)據”菜單中的“有效性”命令,彈出設置“數(shù)據有效性”對話框,在有效性條件的“允許”列表中選擇“序列”,在“來源”框中輸入“江蘇,浙江,安徽”(分隔符為英文狀態(tài)下的逗號),單擊“確定”按鈕。接下來選中“所屬縣市”所在的E列,再次打開“數(shù)據有效性”對話框,在有效性條件的“允許”列表中選擇“序列”,在“來源”框中輸入公式“=INDIRECT(D2)”,單擊“確定”按鈕。
Cico提示:在關閉設置E列數(shù)據有效性對話框時,如系統(tǒng)彈出警告提示“源目前包含錯誤,是否繼續(xù)?”,只需確認就可以了。如果指定的D2單元格中已經選擇了一個省份再設置E列數(shù)據的有效性就不會出現(xiàn)此提示了。
3. 數(shù)據錄入
錄入客戶資料時,首先選擇客戶所在的省份,然后再打開其右側“所屬縣市”所在的單元格時,我們就可以從下拉菜單中找到我們所需的選項了。
二、用組合框工具實現(xiàn)
該方法是借助控件工具箱和VBA代碼來實現(xiàn)的。
1. 設計組合框
在工作表Sheet1中我們借助“控件工具箱”設計了所示的錄入界面,將工作表名稱改為“客戶數(shù)據采集”,在采集客戶的所屬地區(qū)時我們設計了兩個組合框,第一個組合框ComboBox1用來存放省份,第二個組合ComboBox2用來存放對應于第一個組合框的下屬的縣市。Sheet2(“地區(qū)”表)仍保留和原來一樣的內容。
2. 編寫組合框事件代碼
雙擊“客戶數(shù)據采集”表中的組合框ComboBox1,進入VBE編輯器,在代碼窗口中輸入其GotFocus事件代碼:
Private Sub ComboBox1_GotFocus( )
‘清除組合框中的數(shù)值
ComboBox1.Clear
ComboBox2.Clear
‘讀出"地區(qū)"表A列中的不同省份并將其添加到組合框1中
For i = 2 To Sheet2.[a1].End(xlDown).Row
target = Sheet2.Cells(i, 1)
‘利用設置標志位要判斷數(shù)據是否重復
flag = 0
For j = 0 To ComboBox1.ListCount - 1
If ComboBox1.List(j) = target Then flag = 1
Next
If flag = 0 Then
ComboBox1.AddItem target
End If
Next
End Sub
返回Excel工作表中,雙擊組合框ComboBox2,在代碼窗口中輸入其GotFocus事件代碼:
Private Sub ComboBox2_GotFocus( )
ComboBox2.Clear
‘讀出"地區(qū)"表B列中屬于組合框1的縣市并將其添加到組合框2中 For i = 2 To Sheet2.[a1].End(xlDown).Row
target = Sheet2.Cells(i, 1)
If target = ComboBox1.Value Then
ComboBox2.AddItem Sheet2.Cells(i, 2)
End If
Next
End Sub
3. 運行效果
返回“客戶數(shù)據采集”表,單擊控件工具箱中的“退出設計模式”按鈕即可進入運行模式。在組合框ComboBox1中選擇一個省份,此時再單擊組合框ComboBox2的下拉按鈕時,我們就可以方便地選擇該省份所屬的縣市了。
Cico提示:除了在工作表中實現(xiàn)客戶的數(shù)據采集外,我們還可以通過窗體來實現(xiàn)此操作的錄入界面。如果我們需要更改組合框中的列表選項,只需在“地區(qū)”表(即Sheet2)中進行相應的更改就可以了。
兩種方法的比較:相比之下,用本文提供的第一種方法比較簡單,更適合于初學者和一般用戶。而第二方法則更適合利用Excel進行二次開發(fā)的讀者朋友,以便于設計人性化的數(shù)據錄入界面。
另外,在本例中,“地區(qū)”表中的地區(qū)數(shù)據如果需要添加或刪除,若用第一種方法實現(xiàn),要求添加的同類數(shù)據必須要連續(xù)且需要重新定義單元格區(qū)域。如果用方法二實現(xiàn),各省份和所屬縣市添加時可以連續(xù)也可以不連續(xù),就這一點而言,比第一種方法要便捷多了。