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