在Excel中制作下拉列表的3種方法(3)
下拉列表在Excel中的用途十分廣泛。在Excel中制作下拉列表可以通過數據有效性、使用窗體控件和VBA控件工具箱中的組合框來制作。下面我們用一個具體的例子來進行說明(在文章結尾處可下載xls格式的示例文件)。假如...
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,而不是工作表名稱。這樣,每次打開工作簿時,姓名列表會自動添加到組合框中。