我陷入了這個問題,其中我必須將資料過濾到組合框中。該串列應該只有唯一的記錄。這是將記錄填充到組合框中的代碼:
Private Sub UserForm_Activate()
Dim myrng As Range
Dim cl As Range
Dim sh As Worksheet
Set sh = Worksheets("Product_Master")
Set myrng = sh.Range("C2:C100000")
With Me.comBox_Purchase_Product
.Clear
For Each cl In myrng.Cells
If cl.Value <> "" Then
.AddItem cl.Value
End If
Next cl
End With
End sub
繼承人我得到的產品...現在我只想要唯一的記錄并洗掉所有重復項。

提前致謝。
uj5u.com熱心網友回復:
首先將所有值添加到字典中。添加時,使用 測驗唯一性myDictionary.Exists。然后從字典中獲取唯一串列以加載到組合框串列中。
Private Sub UserForm_Activate()
Dim sh As Worksheet
Set sh = Worksheets("Product_Master")
Dim myrng As Range
Set myrng = sh.Range("C2:C100000")
Dim Dict As Object
Set Dict = CreateObject("Scripting.Dictionary")
Dim cl As Range
For Each cl In myrng.Cells
If cl.Value <> "" And Not Dict.exists(cl.Value) Then
Dict.Add cl.Value, 0
End If
Next cl
Me.comBox_Purchase_Product.List = Dict.Keys
End Sub
我建議將事件從 更改UserForm_Activate為UserForm_Initialize,因為這將避免重新運行腳本太多次,但它會在兩個事件中都有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/370757.html
