Se me ocurrió hacer algo así, no sé si sea la mejor forma, pero funciona
.
Código PHP:
Sub NoRepeat(vRange As Range, vReturn As Range)
Dim All() As String
ReDim All(0) As String
Dim AddItem As Boolean
Dim SecondExec As Boolean
Dim Looping As Integer
Dim This As Range
For Each This In vRange.Cells
If This = "" Then Exit For
If SecondExec Then
AddItem = True
For Looping = 0 To UBound(All)
If This = All(Looping) Then
AddItem = False
Exit For
End If
Next Looping
If AddItem Then
ReDim Preserve All(UBound(All) + 1)
All(UBound(All)) = This
Cells(vReturn.Row + UBound(All), vReturn.Column) = This
End If
Else
SecondExec = True
All(0) = This
vReturn = All(0)
End If
Next This
End Sub
Los dos parámetros que recibe es el Rango en el que buscar y el segundo parámetro es la primera celda donde debe imprimir el resultado, después, va a imprimir consecutivamente debajo de la primera.
En tu ejemplo, la llamada sería:
Código:
NoRepeat Range("A1:A10"), Range("B1")
En este caso hay que considerar que no funciona como una fórmula, habrá que llamarla en el evento Change de la Hoja.