學(xué)習(xí)啦>學(xué)習(xí)電腦>工具軟件>辦公軟件學(xué)習(xí)>Excel教程>Excel基礎(chǔ)>

Excel中如何實(shí)現(xiàn)級聯(lián)菜單

時間: 若木635 分享

  Office Excel是由微軟公司開發(fā)的一種電子表格程序,是微軟Office系列核心組件之一,可提供對于 XML 的支持以及可使分析和共享信息更加方便的新功能。

  下面一起看學(xué)習(xí)Excel知識。

  大家知道,在Excel中可以通過設(shè)置數(shù)據(jù)的有效性來實(shí)現(xiàn)類似于網(wǎng)頁表單中的下拉菜單功能,這樣可以大大地提高數(shù)據(jù)的錄入速度和可靠性。但采用此方法要求下拉菜單中的選項不能過多,否則會影響錄入的速度。如果這些選項內(nèi)容之間可進(jìn)行分類、分組,那我們就可以用多個下拉選項(即級聯(lián)菜單)來解決此類問題。下面我們就從一個實(shí)例出發(fā),給出在Excel中實(shí)現(xiàn)級聯(lián)菜單的兩種方法,希望能給使用Excel進(jìn)行辦公的朋友提供幫助。一、自定義數(shù)據(jù)的有效性

  兩個工作表,其中Sheet1用來采集客戶資料,并將其名稱改為“客戶數(shù)據(jù)采集”,在Sheet2的A列中保存了所有的省份,B列中的數(shù)據(jù)為各省份所屬的縣市并將工作表名稱改為“地區(qū)”(假設(shè)這里設(shè)置了三個省份,即江蘇省、浙江省和安徽省)。

  1. 定義單元格區(qū)域名稱

  選中“地區(qū)”表中江蘇省所屬縣市的單元格區(qū)域B2∶B14,依次單擊“插入”菜單中的“名稱”,選擇“定義”,彈出“定義名稱”對話框,在“在當(dāng)前工作簿中的名稱”框中輸入所定義的名稱“江蘇”,單擊“確定”按鈕。類似地,我們可以將浙江省和安徽省所屬縣市的單元格區(qū)域名稱分別定義為“浙江”和“安徽”。

  2. 設(shè)置數(shù)據(jù)的有效性

  切換到“用戶數(shù)據(jù)采集”表中,選擇要選擇輸入省份的D列,單擊“數(shù)據(jù)”菜單中的“有效性”命令,彈出設(shè)置“數(shù)據(jù)有效性”對話框,在有效性條件的“允許”列表中選擇“序列”,在“來源”框中輸入“江蘇,浙江,安徽”(分隔符為英文狀態(tài)下的逗號),單擊“確定”按鈕。接下來選中“所屬縣市”所在的E列,再次打開“數(shù)據(jù)有效性”對話框,在有效性條件的“允許”列表中選擇“序列”,在“來源”框中輸入公式“=INDIRECT(D2)”,單擊“確定”按鈕。

  Cico提示:在關(guān)閉設(shè)置E列數(shù)據(jù)有效性對話框時,如系統(tǒng)彈出警告提示“源目前包含錯誤,是否繼續(xù)?”,只需確認(rèn)就可以了。如果指定的D2單元格中已經(jīng)選擇了一個省份再設(shè)置E列數(shù)據(jù)的有效性就不會出現(xiàn)此提示了。

  3. 數(shù)據(jù)錄入

  錄入客戶資料時,首先選擇客戶所在的省份,然后再打開其右側(cè)“所屬縣市”所在的單元格時,我們就可以從下拉菜單中找到我們所需的選項了。

  二、用組合框工具實(shí)現(xiàn)

  該方法是借助控件工具箱和VBA代碼來實(shí)現(xiàn)的。

  1. 設(shè)計組合框

  在工作表Sheet1中我們借助“控件工具箱”設(shè)計了所示的錄入界面,將工作表名稱改為“客戶數(shù)據(jù)采集”,在采集客戶的所屬地區(qū)時我們設(shè)計了兩個組合框,第一個組合框ComboBox1用來存放省份,第二個組合ComboBox2用來存放對應(yīng)于第一個組合框的下屬的縣市。Sheet2(“地區(qū)”表)仍保留和原來一樣的內(nèi)容。

  2. 編寫組合框事件代碼

  雙擊“客戶數(shù)據(jù)采集”表中的組合框ComboBox1,進(jìn)入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è)置標(biāo)志位要判斷數(shù)據(jù)是否重復(fù)

  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. 運(yùn)行效果

  返回“客戶數(shù)據(jù)采集”表,單擊控件工具箱中的“退出設(shè)計模式”按鈕即可進(jìn)入運(yùn)行模式。在組合框ComboBox1中選擇一個省份,此時再單擊組合框ComboBox2的下拉按鈕時,我們就可以方便地選擇該省份所屬的縣市了。

  Cico提示:除了在工作表中實(shí)現(xiàn)客戶的數(shù)據(jù)采集外,我們還可以通過窗體來實(shí)現(xiàn)此操作的錄入界面。如果我們需要更改組合框中的列表選項,只需在“地區(qū)”表(即Sheet2)中進(jìn)行相應(yīng)的更改就可以了。

  兩種方法的比較:相比之下,用本文提供的第一種方法比較簡單,更適合于初學(xué)者和一般用戶。而第二方法則更適合利用Excel進(jìn)行二次開發(fā)的讀者朋友,以便于設(shè)計人性化的數(shù)據(jù)錄入界面。

  另外,在本例中,“地區(qū)”表中的地區(qū)數(shù)據(jù)如果需要添加或刪除,若用第一種方法實(shí)現(xiàn),要求添加的同類數(shù)據(jù)必須要連續(xù)且需要重新定義單元格區(qū)域。如果用方法二實(shí)現(xiàn),各省份和所屬縣市添加時可以連續(xù)也可以不連續(xù),就這一點(diǎn)而言,比第一種方法要便捷多了。

Excel中如何實(shí)現(xiàn)級聯(lián)菜單

Office Excel是由微軟公司開發(fā)的一種電子表格程序,是微軟Office系列核心組件之一,可提供對于 XML 的支持以及可使分析和共享信息更加方便的新功能。 下面一起看學(xué)習(xí)Excel知識。 大家知道,在Excel中可以通過設(shè)置數(shù)據(jù)的有效性來實(shí)現(xiàn)類似
推薦度:
點(diǎn)擊下載文檔文檔為doc格式
120469