excel製作下拉式清單的方法

來源:互聯網
上載者:User

   小編之前已經介紹了很多excel的功能及屬性,今天要繼續分享的是如何利用excel製作下拉式清單,方法還不止一種,是不是很好奇呢?馬上來分享下excel製作下拉式清單的3種方法。

  excel製作下拉式清單配圖

  在Excel中製作下拉式清單能夠通過資料有效性、使用表單控制項與VBA控制項工具箱中的組合框來製作。下面我們用一個具體的例子來進行說明(在文章結尾處可下載xls格式的樣本檔案)。假如我們每個月都有一個工資表,其中每個員工的工資按照其出勤天數每個月都不相同。

  我們需要製作一個“個人工資表”來查看每個人每個月的工資情況,這時就可以製作一個包含員工姓名下拉式清單,在其中進行選擇來查看指定員工每個月的工資情況。

  方法一:使用資料有效性

  通過資料有效效能夠在儲存格中提供一個下拉式箭頭,單擊下拉式箭頭會彈出下拉式清單。由於員工姓名都在每月的工資表中,而“個人工資表”中沒有這些人員姓名,因此我們必需先定義名稱,以便在“個人工資表”中設定資料有效性時進行引用。

  定義名稱的途徑是單擊菜單“插入→名稱”,在定義名稱對話方塊中進行定義,這裡將“1月工資”表中的姓名地區B3:B14定義為“姓名”,如圖。

  1.假如下拉式清單放在“個人工資表”的C1儲存格,選擇C1儲存格,然後單擊菜單“資料→有效性”,選擇“設定”選項卡,在“有效性條件”地區中“允許”下方的下拉式清單中選擇“序列”。

  2.在“來源”下方的文字框中輸入“=姓名”。單擊“確定”。

  3.在資料區C3:H14中用VLOOKUP函數對工資資料進行關聯。例如第3行為1月工資,可以在C3儲存格中輸入公式

  =VLOOKUP($C$1,‘1月工資’!$B$3:$H$14,2,0)”

  在D3儲存格中輸入公式:

  =VLOOKUP($C$1,‘1月工資’!$B$3:$H$14,3,0)

  在C4儲存格中輸入公式:

  =VLOOKUP($C$1,‘2月工資’!$B$3:$H$14,2,0)

  其餘儲存格依此類推。這樣,只要在單擊C1儲存格右側的下拉式箭頭選擇員工姓名就可以查看其所有月份的工資情況。

  方法二:用表單控制項

  1.在功能表列上右擊,在彈出的菜單中選擇“表單”,將彈出“表單”浮動工具列,單擊“組合框”控制項。

  2.將游標放到表格中,這時游標變成細黑十字形,在表格中畫一個組合框。

  3.右擊組合框,在彈出的菜單中選擇“設定控制項格式”。

  在“設定控制項格式”對話方塊中選擇“控制”選項卡,設定“資料來源”地區為“‘1月工資’!$B$3:$B$14”(或“姓名”),設定“儲存格連結”為$J$1,如圖。

  單擊“確定”回到表格中,按ESC鍵或在任一儲存格單擊一下取消群組框的編輯狀態。這樣設定以後,我們在下拉式清單中選擇一個姓名後,在J1儲存格中將出現該姓名在姓名列表中的相對位置。例如我們選擇第3個姓名“王霞”,J1儲存格中返回數值3。

  4.在資料區C3:H14中用VLOOKUP函數對工資資料進行關聯,利用工資表中的序號數字返回工資資料,方法同上。

  方法三:用VBA控制項工具箱中的下拉式方塊控制項。

  1.在功能表列上右擊,在彈出的菜單中選擇“控制項工具箱”,將彈出“控制項工具箱”浮動工具列,單擊“組合框”控制項。

  2.將游標放到表格中,這時游標變成細黑十字形,在表格中畫一個組合框。

  3.右擊組合框,在彈出的菜單中選擇“屬性”。

  4.在“屬性”視窗中,將ListFillRange屬性設定為“‘1月工資’!B3:B14”。關閉“屬性”視窗 。

  5.按Alt+F11,開啟VBA編輯器,在“個人工資表”中添加 下列代碼:

  Private Sub ComboBox1_Change()

  Range(“c1”) = ComboBox1.Value

  End Sub

  6.在資料區C3:H14中用VLOOKUP函數對工資資料進行關聯,途徑同上。

  另外,我們也可使用VBA代碼將員工名單添加到組合框中,有兩種途徑供選擇:

  在VBA編輯器的“工程”視窗中,雙擊“ThisWorkBook”,在右側的代碼視窗中輸入下列代碼:

  1.使用 AddItem途徑添加項目:

  Private Sub Workbook_Open()

  Dim vName As Variant

  Dim i As Integer

  ‘建立列表

  vName = Array(“張梅”, “黃中”, “王霞”, “應軍軍”, “鄭梟”, “劉梅波”, “李飛”, “吳燕”)

  ’使用 AddItem途徑For i = LBound(vName) To UBound(vName)

  Sheet3.ComboBox1.AddItem vName(i)

  Next i

  End Sub

  2.使用 List 屬性添加項目:

  Private Sub Workbook_Open()

  Dim vName As Variant

  Dim i As Integer

  ‘建立列表

  vName = Array(“張梅”, “黃中”, “王霞”, “應軍軍”, “鄭梟”, “劉梅波”, “李飛”, “吳燕”)

  ’使用 List 屬性

  Sheet3.ComboBox1.List = WorksheetFunction.Transpose(vName)

  End Sub

  其中Sheet3是VBA編輯器“工程”視窗中與“個人工資表”名稱對應的工作表,這裡直接引用的是Sheet3,而不是工作表名稱。這樣,每次開啟活頁簿時,姓名列表會自發添加到組合框中。更多精彩文章請關注下載之家資訊教程頻道。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.