excel制作下拉列表的方法
小編之前已經(jīng)介紹了很多excel的功能及屬性,今天要繼續(xù)分享的是如何利用excel制作下拉列表,方法還不止一種,是不是很好奇呢?馬上來分享下excel制作下拉列表的3種方法。
excel制作下拉列表的方法
excel制作下拉列表配圖
在Excel中制作下拉列表能夠通過數(shù)據(jù)有效性、使用窗體控件與VBA控件工具箱中的組合框來制作。下面我們用一個具體的例子來進(jìn)行說明(在文章結(jié)尾處可下載xls格式的示例文件)。假如我們每個月都有一個工資表,其中每個員工的工資按照其出勤天數(shù)每個月都不相同。
我們需要制作一個“個人工資表”來查看每個人每個月的工資情況,這時就可以制作一個包含員工姓名下拉列表,在其中進(jìn)行選擇來查看指定員工每個月的工資情況。
方法一:使用數(shù)據(jù)有效性
通過數(shù)據(jù)有效性能夠在單元格中提供一個下拉箭頭,單擊下拉箭頭會彈出下拉列表。由于員工姓名都在每月的工資表中,而“個人工資表”中沒有這些人員姓名,因此我們必需先定義名稱,以便在“個人工資表”中設(shè)置數(shù)據(jù)有效性時進(jìn)行引用。
定義名稱的途徑是單擊菜單“插入→名稱”,在定義名稱對話框中進(jìn)行定義,這里將“1月工資”表中的姓名區(qū)域B3:B14定義為“姓名”,如圖。
1.假如下拉列表放在“個人工資表”的C1單元格,選擇C1單元格,然后單擊菜單“數(shù)據(jù)→有效性”,選擇“設(shè)置”選項卡,在“有效性條件”區(qū)域中“允許”下方的下拉列表中選擇“序列”。
2.在“來源”下方的文本框中輸入“=姓名”。單擊“確定”。
3.在數(shù)據(jù)區(qū)C3:H14中用VLOOKUP函數(shù)對工資數(shù)據(jù)進(jìn)行關(guān)聯(lián)。例如第3行為1月工資,可以在C3單元格中輸入公式
=VLOOKUP($C class="main">
excel制作下拉列表的方法
excel制作下拉列表的方法
excel制作下拉列表的方法
其余單元格依此類推。這樣,只要在單擊C1單元格右側(cè)的下拉箭頭選擇員工姓名就可以查看其所有月份的工資情況。
方法二:用窗體控件
1.在菜單欄上右擊,在彈出的菜單中選擇“窗體”,將彈出“窗體”浮動工具欄,單擊“組合框”控件。
2.將光標(biāo)放到表格中,這時光標(biāo)變成細(xì)黑十字形,在表格中畫一個組合框。
3.右擊組合框,在彈出的菜單中選擇“設(shè)置控件格式”。
在“設(shè)置控件格式”對話框中選擇“控制”選項卡,設(shè)置“數(shù)據(jù)源”區(qū)域為“‘1月工資’!$B:$B”(或“姓名”),設(shè)置“單元格鏈接”為$J class="main">
excel制作下拉列表的方法
單擊“確定”回到表格中,按ESC鍵或在任一單元格單擊一下取消組合框的編輯狀態(tài)。這樣設(shè)置以后,我們在下拉列表中選擇一個姓名后,在J1單元格中將出現(xiàn)該姓名在姓名列表中的相對位置。例如我們選擇第3個姓名“王霞”,J1單元格中返回數(shù)值3。
4.在數(shù)據(jù)區(qū)C3:H14中用VLOOKUP函數(shù)對工資數(shù)據(jù)進(jìn)行關(guān)聯(lián),利用工資表中的序號數(shù)字返回工資數(shù)據(jù),方法同上。
方法三:用VBA控件工具箱中的組合框控件。
1.在菜單欄上右擊,在彈出的菜單中選擇“控件工具箱”,將彈出“控件工具箱”浮動工具欄,單擊“組合框”控件。
2.將光標(biāo)放到表格中,這時光標(biāo)變成細(xì)黑十字形,在表格中畫一個組合框。
3.右擊組合框,在彈出的菜單中選擇“屬性”。
4.在“屬性”窗口中,將ListFillRange屬性設(shè)置為“‘1月工資’!B3:B14”。關(guān)閉“屬性”窗口 。
5.按Alt+F11,打開VBA編輯器,在“個人工資表”中添加 下列代碼:
Private Sub ComboBox1_Change()
Range(“c1”) = ComboBox1.Value
End Sub
6.在數(shù)據(jù)區(qū)C3:H14中用VLOOKUP函數(shù)對工資數(shù)據(jù)進(jìn)行關(guān)聯(lián),途徑同上。
另外,我們也可使用VBA代碼將員工名單添加到組合框中,有兩種途徑供選擇:
在VBA編輯器的“工程”窗口中,雙擊“ThisWorkBook”,在右側(cè)的代碼窗口中輸入下列代碼:
1.使用 AddItem途徑添加項目:
Private Sub Workbook_Open()
Dim vName As Variant
Dim i As Integer
‘創(chuàng)建列表
vName = Array(“張梅”, “黃中”, “王霞”, “應(yīng)軍軍”, “鄭梟”, “劉梅波”, “李飛”, “吳燕”)
’使用 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
‘創(chuàng)建列表
vName = Array(“張梅”, “黃中”, “王霞”, “應(yīng)軍軍”, “鄭梟”, “劉梅波”, “李飛”, “吳燕”)
’使用 List 屬性
Sheet3.ComboBox1.List = WorksheetFunction.Transpose(vName)
End Sub
其中Sheet3是VBA編輯器“工程”窗口中與“個人工資表”名稱對應(yīng)的工作表,這里直接引用的是Sheet3,而不是工作表名稱。這樣,每次打開工作簿時,姓名列表會自發(fā)添加到組合框中。
excel制作下拉列表的方法
精選文章
-
excel中怎么使用not函數(shù)?
not函數(shù)是對邏輯判斷取反向值的函數(shù),可以看作是and函數(shù)的反義函數(shù)。下面我們來認(rèn)識一下這個函數(shù)吧! excel中中的使用not函數(shù) 1、首先我們打開樣表。 2、
-
Excel2003如何實現(xiàn)字符替換
字符替換,顧名思義就是用新的字符替換原有的字符。Excel中的字符替換工具,一方面實現(xiàn)了字符的搜索功能,另一方面實現(xiàn)了搜索結(jié)果的替換功能。下面
-
excel表格中數(shù)字亂碼怎么辦?
excel表格中數(shù)字亂碼怎么辦?今天就由學(xué)習(xí)啦小編教大家解決這個問題!希望可以幫到大家! EXCEL表格數(shù)字亂碼 具體的方法步驟如下: 1、如圖,下載的表格,準(zhǔn)
-
如何使用Excel2007中的內(nèi)容重排功能?
我們在使用Excel的過程中,有時候需要把一個單元格的內(nèi)容進(jìn)行分離,或者多行內(nèi)容合并到一個單元格,如果是用復(fù)制粘貼的方法來完成,很明顯操作效率