Excel ListBox具有多个相同的值

Excel ListBox具有多个相同的值,excel,vba,Excel,Vba,我正在使用上一个列表框“HousingTypeList”中的选择,通过搜索表格来确定下一个列表框“CatalystDiameterList”中的内容 添加到“CatalystDiameterList”的数据包含在行“H”中(从H6开始) 到目前为止,我的代码做得很好;但是,它会提取多个相同的值,因此我有一个包含许多相同值的长列表 这是到目前为止我的代码,我希望能够稍微修改一下以使其正常工作,但到目前为止我还没有做到 Private Sub HousingTypeList_Click() las

我正在使用上一个列表框“HousingTypeList”中的选择,通过搜索表格来确定下一个列表框“CatalystDiameterList”中的内容

添加到“CatalystDiameterList”的数据包含在行“H”中(从H6开始)

到目前为止,我的代码做得很好;但是,它会提取多个相同的值,因此我有一个包含许多相同值的长列表

这是到目前为止我的代码,我希望能够稍微修改一下以使其正常工作,但到目前为止我还没有做到

Private Sub HousingTypeList_Click()

lastrow = Sheet2.Cells(Rows.Count, 5).End(xlUp).Row

curVal = Me.HousingTypeList.Value

For x = 6 To lastrow
    If Worksheets("FSC PSC PFC").Cells(x, "B") = curVal Then
        Me.CatalystDiameterList.AddItem Worksheets("FSC PSC PFC").Cells(x, "H")
    End If
Next x

End Sub
我愿意编辑这段代码,以防止出现倍数,或者在添加倍数后过滤并去除倍数的内容

非常感谢您的帮助


谢谢大家!

创建一个字典对象,如下一个代码中所示,并用下一个循环替换您的循环:

Dim dict As Object
  Set dict = CreateObject("Scripting.Dictionary")
  For x = 6 To lastRow
    If Worksheets("FSC PSC PFC").Cells(x, "B") = curVal Then
        If Not dict.Exists(Worksheets("FSC PSC PFC").Cells(x, "H").value) Then
            Me.CatalystDiameterList.AddItem Worksheets("FSC PSC PFC").Cells(x, "H")
            dict(Worksheets("FSC PSC PFC").Cells(x, "H").value) = 1
        End If
    End If
Next x

创建一个Dictionary对象,如下一个代码中所示,并用下一个循环替换您的循环:

Dim dict As Object
  Set dict = CreateObject("Scripting.Dictionary")
  For x = 6 To lastRow
    If Worksheets("FSC PSC PFC").Cells(x, "B") = curVal Then
        If Not dict.Exists(Worksheets("FSC PSC PFC").Cells(x, "H").value) Then
            Me.CatalystDiameterList.AddItem Worksheets("FSC PSC PFC").Cells(x, "H")
            dict(Worksheets("FSC PSC PFC").Cells(x, "H").value) = 1
        End If
    End If
Next x

那么,您是否只需要添加唯一的值?如果可能的话,这就是我想要的:)是的。请测试我的代码答案…谢谢你的回复和答案,我不能马上测试出来,但我明天早上会的。非常感谢。谢谢你@FaneDuru。这个代码工作得很好!我已经选择了你的答案并给了你一个投票:)那么,你需要只添加唯一的值吗?如果可能的话,这就是我想要的:)是的。请测试我的代码答案…谢谢你的回复和答案,我不能马上测试出来,但我明天早上会的。非常感谢。谢谢你@FaneDuru。这个代码工作得很好!我选择了你的答案,并给了你一票:)