Here is what I'm currently using to remove duplicates from an array. It's written assuming each string in the array begins with 0-9 or A-Z, but can easily encompass the entire ascii table (even shorter if I created all the variables dynamically).

code:
Function StripCopies($striArray) 
$on = 1
Dim $searArr,$a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,
$q,$r,$s,$t,$u,$v,$w,$x,$y,$z,$0,$1,$2,$3,$4,$5,$6,$7,$8,$9
For Each $add in $StriArray
$dyn = SubStr($add,1,1)
$nul = Execute('if ubound($$$dyn) = -1
ReDim $$$dyn[0] $$$dyn[Ubound($$$dyn)] = $$add
EndIf
$$counter = 0
While Ubound($$$dyn)+1 <> $$counter
If $$add = $$$dyn[$$counter]
$$on = 1
EndIf
$$counter = $$counter+1
Loop
$$counter = 0
If $$on = 0
ReDim preserve $$$dyn[Ubound($$$dyn)+1]
$$$dyn[Ubound($$$dyn)] = $$add
EndIf')
$on = 0
Next
$ProgComp.Value = 0
$ProgSoft.Value = 0
$count = 48
While $count <> 91 $dyna = Chr($count)
$nul = Execute('for each $$addto in $$$dyna
ReDim preserve $$seararr[Ubound($$seararr)+1]
$$seararr[Ubound($$seararr)] = $$addto
Next')
$count = $count + 1
If $count = 58
$count = $count + 7
EndIf
Loop
$StripCopies = $SearArr
EndFunction

I rewrote an older UDF I posted a few weeks back because it was taking entirely to long to strip the duplicates. In testing the older UDF took about 45 seconds to strip 464 unique strings from the 1220 original, this script cut that down to about 6 seconds. Of course the effectiveness of this script depends on the the original array's contants 1st characters varrying. In other words the function is faster if the first character of the strings in the array are not all the same.

Sorry, not trying to hijack the thread. I just wanted to make sure you didn't think I was asking you to write something for me because I was to lazy to do it myself.

Thanks for the input.