不重复地将 sheet 数据插入用户窗体组合框 - Excel Vba

Insert sheet data into userform combobox with no duplication - Excel Vba

我正在制作一个带有两个组合框的 excel 用户表单。一个组合框从名为 "CompaniesandSubsidiaries" 的 sheet3(A 列)中检索数据。然后在第一个组合框的基础上,第二个组合框检索子类别数据。但问题是A列有数据重复。我附上了一张图片。

我正在尝试的是:

Private Sub Combobox1_DropButtonClick()

    Dim rng As Range

    Dim ws As Worksheet

    Set ws = Worksheets("CompaniesandSubsidiaries")

    For Each rng In ws.Range("Companies")

        Me.ComboBox1.AddItem rng.Value

    Next rng

End Sub

Private Sub ComboBox2_DropButtonClick()

    Dim rng As Range

    Dim ws As Worksheet

    Set ws = Worksheets("CompaniesandSubsidiaries")

    For Each rng In ws.Range("Providers")

        Me.ComboBox2.AddItem rng.Value

    Next rng
End Sub

我分别为 "column A and B" 指定的公司和提供商制定了一个公式。但它重复了这些价值观。我不想要。

我想要的是从 sheet3 动态获取第一个组合框的数据作为公司名称(没有重复),然后下一个组合框将启用,它将显示与公司名称对应的提供商列表。

请提供简单易懂的代码。谢谢

您可以在将重复数据填充到 ComboBox 之前删除重复数据 在删除重复值的代码下方:

ActiveSheet.Range("Companies").RemoveDuplicates Columns:=1, Header:=xlNo

您也可以手动将公司数据存储到一个数组变量中,遍历该数组中的每个项目以检查它是否重复。这里有一个 link 视频,演示了如何评估数组中的每个数据并获得不同/唯一的值。 https://www.facebook.com/excelfuneasy/videos/693150624214021/