根据过滤的表格数据填充combobox

在Excel 2013中,我有一个包含格式化表格的表格 – 表格1。 该表有两列,分别是[产品组]和[产品名称]:

在这里输入图像说明

使用VBA我创build了一个包含两个comboboxcbProductGroupcbProductName的简单表单。

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列表加载到集合以防止加载重复项。