Datenfelder in neues Array klappt nicht
03.01.2004 14:10:24
Lupus
In einem zweidimensionalem Array_1 möchte ich mittels unten aufgeführten Codes alle Doppelten entfernen:
Dazu vergleiche ich die Werte in Spalte 3 des Arrays und schreibe(zumindest will ich es, aber es klappt nicht) die Daten in ein neues Array.
Option Explicit
Option Base 1
Sub test()
Dim varArray_1 As Variant
With Worksheets(1)
varArray_1 = .Range(.Cells(2, 1), .Cells(.Cells(65536, 1).End(xlUp).row, 3))
End With
varArray_1 = DeleteDoubles(varArray_1)
Worksheets(1).Range("G1:I24") = varArray_1
End Sub
Function DeleteDoubles(arr As Variant)
Dim iCounter As Integer, intSpalte As Integer, lngZaehler As Long
Dim arrWithoutDouble(100, 3) As Variant
For iCounter = 1 To UBound(arr)
On Error Resume Next
If arr(iCounter, 3) <> arr(iCounter + 1, 3) Then
lngZaehler = lngZaehler + 1
For intSpalte = 1 To 3
arrWithoutDouble(lngZaehler, intSpalte) = arr(iCounter, intSpalte)
arrWithoutDouble(lngZaehler, intSpalte) ist immer leer
Next
End If
Next
arr = arrWithoutDouble
End Function
1. Wer kann mir sagen, wie der Code richtig lauten muß?
2. Die Dimensionierung von arrWithoutDouble habe ich jetzt willkürlich vorgenommen. Wie macht man dies aber richtig? Zu Beginn weis ich ja nicht wie viele Fundstellen ich habe und kann daher keine Dimensionierung angeben.
3. Kann man ein Array-Datensatz (Zeile) direkt in ein neues Array schreiben, oder muß man, wie oben beschrieben, die Zeile Feld für Feld (Spalte für Spalte) füllen?
Gruß Lupus