在excel用户窗体中实现级联下拉列表

在excel用户窗体中实现级联下拉列表?在网站中,我们经常会碰到需要一层层向下选择的情况。在第一个选项列表中选择第一个数据,第二个选项列表中选择第二个数据,依此类推。并且,后面的选项列表内容会根据前面选择的内容而发生变化。如下所示。

上是使用Excel VBA用户窗体实现的效果,实现起来很简单。

首先,准备数据,如下所示。第1列单元格中的值分别是该列下方数据单元格区域的名称,这需要我们事先使用名称功能进行定义。

接着,设计用户窗体,如下所示。在VBE中,插入一个用户窗体,在上面放置3个组合框并分别命名为:cmbProduct、cmbModel和cmbSubModel。

编写用户窗体模块代码:

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

至此,运行用户窗体,即实现上所示的效果。你可以根据实际情况,添加功能,譬如选择好后,将选择的数据输入用户信息工作表或者导向到相应的产品页面。

office办公软件入门基础教程 » 在excel用户窗体中实现级联下拉列表

本文链接:【在excel用户窗体中实现级联下拉列表】https://www.officeapi.cn/88897.html

OFFICE,天天学一点,进步多一点

联系我们