Llenas una matriz usando otra sin repetir datos

Tengo un arreglo con valores
8|8|8|8|9|8|8|1|1
Por ejemplo
Ahora lo que necesito es guardar los valores en otro arreglo pero sin repetirse
Es decir que quede
8|9|1
El primer arreglo es dinámico por lo que el segundo también puede variar
no se como hacerlo en vb en excel, la verdad es mi primer macro y apenas me estoy familiarizando con el VB
con esto lleno el primer arreglo a partir de una tabla de datos
                Dim contador    As Integer
                Dim tmp         As String
                Dim ban         As Boolean
                Dim antc()      As String
                con = 0
                Do While ActiveCell.Value = ActiveCell.Offset(1, 0).Value
                    con = con + 1
                    tmp = ActiveCell.Offset(0, -3).Value
                    ReDim Preserve arreg(1 To con)
                    arreg(con) = tmp
                    ActiveCell.Offset(1, 0).Select
                Loop
esto me daria poe ejemplo el valor 8|8|8|8|9|8|8|1|1
y no se como hacer que  me elimine los valores repetidos y los ponga en una nueva matriz

1 Respuesta

Respuesta
1
Lo hice utilizando algo de programación, espero te funcione.
En mi caso en la columna a tengo la siguiente información.
Valor1, y hacia abajo los números, 8,8,8,8,9,8,8,1,1
en la columna e escribe Valor2 en E1 y 9999 en E2 ( esto es para que me funcione la macro que va a continuación.
Sub Llenar()
    Range("E1").Select
    Selection.End(xlDown).Select
    v_fil2 = ActiveCell.Row
    Range("A1").Select
    Selection.End(xlDown).Select
    v_fil1 = ActiveCell.Row
    For i = 2 To v_fil1
        v_celda = "A" + Trim(Str(i))
        Range(v_celda).Select
        v_val = ActiveCell.Value
        Range("E1").Select
        lenc = 0
        For j = 3 To v_fil2
            v_celda2 = "E" + Trim(Str(j))
            Range(v_celda2).Select
            v_val1 = ActiveCell.Value
            If v_val = v_val1 Then
                lenc = 1
            End If
        Next j
        If lenc = 0 Then
            Range("E1").Select
            Selection.End(xlDown).Select
            ActiveCell.Offset(1, 0).Select
            ActiveCell.Value = v_val
            v_fil2 = v_fil2 + 1
        End If
    Next i
End Sub 
Valor2.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas