私が苦労してきた簡単な質問。文字列を含む長さの異なる 2 つの配列があります。重複が検出された場合に両方の要素を削除する新しい配列を出力したいと考えています。現時点では、重複を削除するだけですが、私が達成しようとしているものとは異なるオリジナルを残しています。
例えば
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
事前にすべてのヘルプとサポートに感謝します。