你的位置:

按键精灵删除数组重复元素(数组去重)

来源[ANJIAN] 点击[124] 作者[admin] 时间[2017-03-04 23:44:57]


\'1 不按顺序的
Sub arrFilterCC()
\'数组内容去重复函数,生成新数组arr2
Dim arr, arr2, i, idx, k
arr = \"a-,a-,a-,a-,d-,b-,c-,c-,e-,f-,b-,b-,a-\"
arr2 = Split(arr, \",\"):arr = Split(arr, \",\")
For i = 0 To UBound(arr2)
If UBound(Filter(arr2, arr(i))) > 0 Then
arr2 = Filter(arr2, arr(i), False)
k = UBound(arr2) + 1
ReDim Preserve arr2(k)
arr2(k) = arr(i)
End If
Next
Debug.Print Join(arr2)
End Sub


2按顺序的
Sub arrFilterCC2()
\'数组内容去重复函数,生成新数组
Dim arr, arr2(), i, idx, k
arr = \"a-,a-,a-,a-,d-,b-,c-,c-,e-,f-,b-,b-,a-\"
arr = Split(arr, \",\")
ReDim arr2(1)
For i = 0 To UBound(arr)
idx = UBound(Filter(arr2, arr(i)))
If idx < 0 Then
ReDim Preserve arr2(UBound(arr2) + 1)
arr2(UBound(arr2)) = arr(i)
End If
Next
Debug.Print Join(arr2)
End Sub


\'如果重复特别多冗余,用下面这个可以极大提高效率
Sub arrFilterCC3()
\'数组内容去重复函数,生成新数组
Dim arr, arr2, i, idx, k
arr = \"a-,a-,a-,a-\"
arr2 = Split(arr, \",\")
arr = Split(arr, \",\")
Do
idx = UBound(Filter(arr2, arr(i)))
If idx > 0 Then
arr2 = Filter(arr2, arr(i), False)
k = UBound(arr2) + 1
ReDim Preserve arr2(k)
arr2(k) = arr(i)
End If
i = i + 1
Debug.Print i
If i > UBound(arr2) Then Exit Do
Loop
Debug.Print Join(arr2)

End Sub
分享

    最新评论:



评论文本(10-200个字符)超出部分会被自动删除.
刷新 点击图片刷新验证码,防止恶意攻击,验证码刷新延时5秒!
广告2