快速的問題,我一直在努力。我有2個包含字符串的不同長度的數組。 我想輸出一個新的數組,刪除兩個元素,如果檢測到重複。目前它只刪除重複項目,但保留原來的內容,這對我正在嘗試完成的內容不正確。VBA - 在不唯一的情況下從陣列中移除兩個項目
E.g.
input = array ("cat","dog","mouse","cat")
expected output = array ("dog","mouse")
actual output = array ("cat","dog","mouse")
代碼如下:
Sub removeDuplicates(CombinedArray)
Dim myCol As Collection
Dim idx As Long
Set myCol = New Collection
On Error Resume Next
For idx = LBound(CombinedArray) To UBound(CombinedArray)
myCol.Add 0, CStr(CombinedArray(idx))
If Err Then
CombinedArray(idx) = Empty
dups = dups + 1
Err.Clear
ElseIf dups Then
CombinedArray(idx - dups) = CombinedArray(idx)
CombinedArray(idx) = Empty
End If
Next
For idx = LBound(CombinedArray) To UBound(CombinedArray)
Debug.Print CombinedArray(idx)
Next
removeBlanks (CombinedArray)
End Sub
感謝所有幫助和支持提前。
排序使用冒泡排序,然後將數組刪除重複的:) – 2012-07-31 10:37:08
亞洲時報Siddharth嗨, 是冒泡排序算法不是數值? – user1228891 2012-07-31 10:49:22
不,這不是必要的:)你可以對任何類型的數組進行排序。 – 2012-07-31 10:50:57