1.4k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

ich versuche mich an einem Code mit dem ich Duplikate in einem vorher eingelesenen Array finde.

Sub Duplikate()

Dim arrSpeicher() As String, lngAnz As Long

For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
ReDim Preserve arrSpeicher(0 To lngAnz)
arrSpeicher(lngAnz) = Cells(i, 2) & Cells(i, 3) & Cells(i, 5) & Cells(i, 7) & Cells(i, 9)
lngAnz = lngAnz + 1
Next

For i = 0 To UBound(arrSpeicher(), 1) ' kontrolliert , ob Datensätze doppelt sind
If Application.Count(arrSpeicher(), arrSpeicher(i)) > 1 Then
.....


Allerdings liefert mir die count-Funktion ausnahmslos den Wert "0", obwohl der doch jedesmal mindestens "1" ergeben müßte.
Was läuft da falsch? Danke für euren Tipp.
Gruß Andreas

13 Antworten

0 Punkte
Beantwortet von
Hi Nighty, danke für die Antwort. Es ging aber darum SumProduct als Pendant zu CountIf zu verwenden. So wie im Excel auch. Das
ist aus meiner Sicht bei Arrays nicht möglich.

Gruß Mr. K.
0 Punkte
Beantwortet von
PS: Bevor jetzt hier dumme Sprüche kommen: Natürlich bleibt einem im Notfall immer noch die Schleife.

For i = 1 To UBound(arrSpeicher)
If arrSpeicher(i) = "SuchText" Then Counter = Counter + 1
Next i

Genau das sollte aber in der Ausgangsfrage vermieden werden.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo zusammen,

danke für eure interessante und aufschlußreiche Diskussion! Hat mir sehr geholfen!
VG A.
...