将工作表数据插入到userform组合框中,无重复-Excel Vba

将工作表数据插入到userform组合框中,无重复-Excel Vba,vba,excel,combobox,userform,Vba,Excel,Combobox,Userform,我正在制作一个带有两个组合框的excel用户表单。一个combox从名为“companysandsublities”的sheet3(A列)中检索数据。然后,在第一个组合框的基础上,第二个组合框检索子类别数据。但问题是A列有重复的数据。我附上了一张图片 我尝试的是: Private Sub Combobox1_DropButtonClick() Dim rng As Range Dim ws As Worksheet Set ws = Worksheets("Com

我正在制作一个带有两个组合框的excel用户表单。一个combox从名为“companysandsublities”的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
我分别为“a列和B列”命名的公司和提供商制作了一个公式。但它重复了这些值。那是我不想要的

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


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

您可以先删除重复数据,然后再在组合框中填充数据 下面是删除重复值的代码:

ActiveSheet.Range("Companies").RemoveDuplicates Columns:=1, Header:=xlNo
您还可以手动将公司数据存储到数组变量中,迭代该数组中的每个项以检查其是否重复。这里是一个链接视频,演示如何评估阵列上的每个数据并使其具有独特的/唯一的价值。

请说明您的具体问题,说明您尝试了什么以及您遇到了什么困难,或添加其他详细信息,以突出显示您需要什么。请参阅“如何询问”页面以获得更好的响应。@suvartheec请现在查看代码。是否可以显示您希望它看起来像什么?我仍然不确定我是否理解期望的结果是什么。@Hambone userform中有两个combobox。一个组合框将显示公司名称,在这种情况下,公司名称将为{company1,company2,company3,company4},当用户选择一个公司时,第二个组合框将自动从第二列检索数据,如果是company1,则为ABC,BCD,…JKL。如果公司是公司4,第二个组合框将只显示ABC作为提供者。希望你能明白我的意思。