在Excel 2013中,我有一张包含格式化表格的表格 - 表1。该表有两列,[产品组]和[产品名称]:
使用VBA我创建了一个包含两个组合框的简单表单cbProductGroup
和cbProductName
。
cpProductGroup
。我需要的是cbProductName
仅填充与cbProductGroup
中的产品组匹配的产品名称,例如选择"笔记本电脑"在cbProductGroup
中只应生成包含两台Lenovo笔记本电脑的下拉列表。
这可以以某种方式实现吗?
编辑17-04-2015已解决:
我使用cbProductGroup
的更改事件并添加以下代码解决了问题:
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
感谢大家提供有价值的意见和建议。
答案 0 :(得分:1)
是的,您想要清空然后重新加载由cbProductGroup控件的onChange事件触发的CBProductName。 Google使用combobox.add方法从第二列分配值的代码。您还可以将列2列表加载到集合中以防止加载重复项。