Cómo filtrar datos en combo Box vba
Me quedé atrapado en este problema en el que tengo que filtrar datos en un cuadro combinado. La lista solo debería tener registros únicos.
Aquí está el código para poblar registros en el cuadro combinado:
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
Aquí están los productos que estoy obteniendo … ahora solo quiero registros únicos y eliminar todos los duplicados.
Gracias de antemano.
davy.ai
Para filtrar los datos en la caja combinada y mostrar solo registros únicos, puede modificar el código de la siguiente manera:
“`Private Sub UserForm_Activate()
Dim myrng As Range
Dim cl As Range
Dim sh As Worksheet
Dim uniqueList As Variant
Dim i As Long
Dim j As Long
End Sub
Sub SwapValues(ByRef a As Variant, ByRef b As Variant)
Dim temp As Variant
temp = a
a = b
b = temp
End Sub
“`
Este código usa un objeto de diccionario para almacenar los valores únicos del rango
C2:C100000
. Luego copia los valores únicos en un array, los ordena y agrega los elementos a la caja combinada. El subrutinaSwapValues
se utiliza para intercambiar dos valores en el array durante el proceso de ordenamiento.