根据过滤的表格数据填充combobox
在Excel 2013中,我有一个包含格式化表格的表格 – 表格1。 该表有两列,分别是[产品组]和[产品名称]:
使用VBA我创build了一个包含两个comboboxcbProductGroup
和cbProductName
的简单表单。
cpProductGroup
使用RowSource属性和一个名为ranged(= cpProductGroup
来填充。 我需要的只是cbProductName
填充与cbProductGroup
产品组匹配的产品名称,例如selectcbProductGroup
“Laptop”应该只产生一个包含两个Lenovo笔记本电脑的下拉列表。
这是可以实现的吗?
编辑17-04-2015已解答:
我使用cbProductGroup
的change事件解决了问题,并添加了以下代码:
Private Sub cbProductGroup_Change() Me.cbProductName.Clear Dim lastRow As Long Dim shtInventory As Worksheet Set shtInventory = Sheets("Inventory") With shtInventory lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row For i = 6 To lastRow If Me.cbProductGroup = .Cells(i, "A") Then Me.cbProductName.AddItem .Cells(i, "C") End If Next End With
谢谢大家提供宝贵的意见和build议。
是的,你想清空然后重新加载由cbProductGroup控件的onChange事件触发的CBProductName。 谷歌代码使用combobox.add方法来分配第二列的值。 您还可以将列2列表加载到集合以防止加载重复项。