所以我有一系列级联组合框,这些组合框根据第一个框的值填充,如下所示:
身份证(预填充(> 许可证号码> 州>名称
我使用以下代码填充组合框:
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
所以在组合框 1 中,我有:001,002,003,004(这是正确的(
当我在第一个框中选择 004 时,第二个框填充:SA,SA,这不是我想要的。
我一直在尝试遵循以下示例,据称该示例将删除重复项,但不允许我正在做的比较。
有谁知道如何从搜索范围中删除重复项?
若要在填充列表时删除重复项,可以使用字典,然后将组合的列表属性设置为字典的键。
即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