Hallo zusammen,
wenn VBA eingesetzt wird dann würde ich bei so vielen Daten nicht mit einer For Each Schleife arbeiten.
Hier eine Variante, die etwas schneller ein Ergebnis ausspucken sollte.
Code:
Sub unicate()
Dim i As Long, j As Long
Dim objDic As Object
Dim feld
feld = Range("A2:FAN2160")
Set objDic = CreateObject("Scripting.Dictionary")
For i = 1 To 2159
For j = 1 To 4096
objDic(feld(i, j)) = 1
Next j
Next i
MsgBox objDic.Count
End Sub
Wer es mal mit einem ausgefüllten Bereich testen möchte, kann folgenden Code zuesrt zum reinschreiben von Werten nehmen:
Code:
Sub schreib()
Range("A2:FAN2") = 1
Range("A3:FAN2160") = 2
End Sub
Es wird in Zeile 1 eine 1 reingeschrieben
und in die anderen wir 2 geschrieben.
wenn dann der Code unicate ausgeführt wird sollte als Ergebnis 2 rauskommen.
Ihr könnt euch ja einen Kaffee holen und nach dem Ausfüllen der Tabelle die drei Varianten zum auslesen mal laufen lassen.