在excel用戶窗體中實(shí)現(xiàn)級(jí)聯(lián)下拉列表?在網(wǎng)站中,我們經(jīng)常會(huì)碰到需要一層層向下選擇的情況。在第一個(gè)選項(xiàng)列表中選擇第一個(gè)數(shù)據(jù),第二個(gè)選項(xiàng)列表中選擇第二個(gè)數(shù)據(jù),依此類推。并且,后面的選項(xiàng)列表內(nèi)容會(huì)根據(jù)前面選擇的內(nèi)容而發(fā)生變化。如下所示。

上是使用Excel VBA用戶窗體實(shí)現(xiàn)的效果,實(shí)現(xiàn)起來很簡單。
首先,準(zhǔn)備數(shù)據(jù),如下所示。第1列單元格中的值分別是該列下方數(shù)據(jù)單元格區(qū)域的名稱,這需要我們事先使用名稱功能進(jìn)行定義。

編寫用戶窗體模塊代碼:
Private Sub UserForm_Initialize()
‘第1個(gè)組合框中添加值
cmbProduct.List =Application.WorksheetFunction.Transpose(Range(“產(chǎn)品”))
End Sub
Private Sub cmbProduct_Change()
cmbModel.Value = “”
cmbSubModel.Value = “”
Select Case cmbProduct.Value
‘根據(jù)第1個(gè)組合框中的值
‘在第2個(gè)組合框中添加相應(yīng)的值
Case “產(chǎn)品1”
cmbModel.List =Application.WorksheetFunction.Transpose(Range(“產(chǎn)品1”))
Case “產(chǎn)品2”
cmbModel.List =Application.WorksheetFunction.Transpose(Range(“產(chǎn)品2”))
Case Else
cmbModel.Value = “”
End Select
End Sub
Private Sub cmbModel_Change()
cmbSubModel.Value = “”
Select Case cmbModel.Value
‘根據(jù)第2個(gè)組合框中的值
‘在第3個(gè)組合框中添加值
Case “型號(hào)11”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號(hào)11”))
Case “型號(hào)12”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號(hào)12”))
Case “型號(hào)13”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號(hào)13”))
Case “型號(hào)21”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號(hào)21”))
Case “型號(hào)22”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號(hào)22”))
Case “型號(hào)23”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號(hào)23”))
Case Else
cmbSubModel.Value = “”
End Select
End Sub
至此,運(yùn)行用戶窗體,即實(shí)現(xiàn)上所示的效果。你可以根據(jù)實(shí)際情況,添加功能,譬如選擇好后,將選擇的數(shù)據(jù)輸入用戶信息工作表或者導(dǎo)向到相應(yīng)的產(chǎn)品頁面。






