删除级联comboboxVBA中的重复项目
所以我有一系列级联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