View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Papou Papou is offline
external usenet poster
 
Posts: 67
Default Best way to "filter" an array

Hello
Option Base 1
Sub PutNondups()
Dim v(10)
Dim v2()
v(1) = "A"
v(2) = "B"
v(3) = "C"
v(4) = "A"
v(5) = "B"
v(6) = "A"
v(7) = "B"
v(8) = "A"
v(9) = "B"
v(10) = "C"

Dim Coll As New Collection

For Each Elt In v
On Error Resume Next
Coll.Add Elt, CStr(Elt)
If Err.Number = 0 Then
ReDim Preserve v2(1 To Coll.Count)
v2(Coll.Count) = Elt
End If
On Error GoTo 0
Next

For i = LBound(v2) To UBound(v2)
MsgBox v2(i)
Next i

End Sub

HTH
Cordially
Pascal

"39N 95W" a écrit dans le message de news:
...
I have a 1-dimensional array whose members are single letter values, i.e.

V(1) = "A"
V(2) = "B"
V(3) = "C"
V(4) = "A"
V(5) = "B"
V(6) = "A"
V(7) = "B"
V(8) = "A"
V(9) = "B"
V(10) = "C"

I'd like to create a new array that is a filtered version of the array
above, where all duplicates are removed so that each member of the new
array is unique and not repeated, i.e.

A(1) = "A"
A(2) = "B"
A(3) = "C"

Any ideas on the best method? I can possibly visualize doing this with
some loops, but I'm having trouble getting my head around it. Any ideas
welcome.

Thanks!

-gk-


================================================== ======================
"The creative act is not the province of remote oracles or rarefied
geniuses but a transparent process that is open to everyone."
-Greg Kot in Wilco Learning How To Die-