在excel用戶窗體中實現級聯下拉列表?在網站中,我們經常會碰到需要一層層向下選擇的情況。在第一個選項列表中選擇第一個數據,第二個選項列表中選擇第二個數據,依此類推。并且,后面的選項列表內容會根據前面選擇的內容而發生變化。如下所示。
上是使用Excel VBA用戶窗體實現的效果,實現起來很簡單。
首先,準備數據,如下所示。第1列單元格中的值分別是該列下方數據單元格區域的名稱,這需要我們事先使用名稱功能進行定義。
編寫用戶窗體模塊代碼:
Private Sub UserForm_Initialize()
‘第1個組合框中添加值
cmbProduct.List =Application.WorksheetFunction.Transpose(Range(“產品”))
End Sub
Private Sub cmbProduct_Change()
cmbModel.Value = “”
cmbSubModel.Value = “”
Select Case cmbProduct.Value
‘根據第1個組合框中的值
‘在第2個組合框中添加相應的值
Case “產品1”
cmbModel.List =Application.WorksheetFunction.Transpose(Range(“產品1”))
Case “產品2”
cmbModel.List =Application.WorksheetFunction.Transpose(Range(“產品2”))
Case Else
cmbModel.Value = “”
End Select
End Sub
Private Sub cmbModel_Change()
cmbSubModel.Value = “”
Select Case cmbModel.Value
‘根據第2個組合框中的值
‘在第3個組合框中添加值
Case “型號11”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號11”))
Case “型號12”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號12”))
Case “型號13”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號13”))
Case “型號21”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號21”))
Case “型號22”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號22”))
Case “型號23”
cmbSubModel.List =Application.WorksheetFunction.Transpose(Range(“型號23”))
Case Else
cmbSubModel.Value = “”
End Select
End Sub
至此,運行用戶窗體,即實現上所示的效果。你可以根據實際情況,添加功能,譬如選擇好后,將選擇的數據輸入用戶信息工作表或者導向到相應的產品頁面。