删除级联comboboxVB​​A中的重复项目

所以我有一系列级联combobox,这些combobox依赖于第一个框的值被填充,如下所示:

ID(预填充)>许可证编号>状态>名称

我使用以下代码填充combobox:

If cmb_Project.ListIndex <> -1 Then cmb_State.Clear strSelected = cmb_Licence.Value LastRow = Worksheets("Entitlement Owners").Range("A" & Rows.Count).End(xlUp).row Set rngList = Worksheets("Entitlement Owners").Range("c2:c" & LastRow) Set rngCompany = Worksheets("Entitlement Owners").Range("b2:b" & LastRow) For Each rngCompany In rngList If rngCompany.Value = strSelected Then cmb_State.AddItem rngCompany.Offset(, -1) End If Next rngCompany End If 

下面是我有的数据的样本布局

 001 SA 763 Name 1 002 SA 547 Name 2 004 SA 2250 Name 3 004 SA 2250 Name 4 

所以在Combobox 1中,我有:001,002,003,004(这是正确的)

当我在第一个框中select004时,第二个框填充:SA,SA,这不是我想要的。

我一直试图按照下面的例子 ,据称将删除重复,但不允许我正在做的比较。

有谁知道我可以如何从search范围中删除重复?

要填充列表时删除重复项,您可以使用字典,然后将组合的列表属性设置为字典的键。 即

 Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary") For Each rngCompany In rngList If rngCompany.value = strSelected Then dict(rngCompany.Offset(, -1).text) = 0 ' add key to dict Next rngCompany cmb_State.List = dict.Keys