从搜索范围获取值到组合列表

时间:2014-08-15 09:08:46

标签: excel vba excel-vba

我有组合框,我选择名称约翰。我需要插入所有可以将约翰卖给另一个组合框的物品。这些项目存储在工作表中,其中第一列是推销员的名称,第二列是商品,可以由销售人员销售:

 A         B
John      Tires
John      Auto parts
John      Body kits
John      Rims 
Alex      Tires
Alex      Spoilers

我在 combo1 中选择了John,我想将B列中的所有项目(轮胎,汽车零件,车身套件和轮辋)放入 combo2 ,其中名称John写在A列中。 我已经有了代码,它将销售人员添加到第一个组合中:

Private Sub UserForm_Initialize()
Dim cLoc As Range
Dim ws As Worksheet
Set ws = Worksheets("seller")
For Each cLoc In ws.Range("SellerTable")
   With Addinvoice.SellerCombo
    .AddItem cLoc.Value
   End With
Next cLoc
End Sub

如果可能,存储销售权的表应该是动态的,因此可以通过新的行表添加任何人或销售权限。与卖家名称相同 - 现在我有SellerTable范围,但是当我需要添加或删除销售员时,这个解决方案并不好。

1 个答案:

答案 0 :(得分:0)

好的,这里使用了命名范围。设置工作表如下所示:

enter image description here

然后使用以下代码:

Private Sub ComboBox1_Change()
    Select Case Me.ComboBox1
    Case "John": Me.ComboBox2.RowSource = "John"
    Case "Ales": Me.ComboBox2.RowSource = "Alex"
    End Select
End Sub

Private Sub UserForm_Initialize()
    Me.ComboBox1.AddItem "John"
    Me.ComboBox1.AddItem "Alex"
End Sub

这只是一个想法。您必须稍微清理它并处理潜在的错误。 HTH。

<强>结果:

enter image description here