Hallo zusammen,
Hallo Brille
habe folgenden Code im Internet gefunden, um in Excel die
Einträge ohne Duplikate zu zählen (inklusive Autofilter). Kann
mir wer den Code erläutern? Würde gerne verstehen was ich da
reinbastel:
Public Function zählenSpezial(bereich As Range) As Long
Dim zelle As Range
Dim dic
Set dic = CreateObject(„scripting.dictionary“)
Das scripting.dictionary ist ein Object aus dem Windows Script. Du kannst es dir wie einen Schrank mit vielen Schubladen vorstellen. Jede Schublade hat einen Aufkleber (einen Namen), und in jeder Schublade kann (muss aber nicht) etwas drin liegen.
Mit set dic = bekommt der ganze Schrank bildlich gesprochen den Namen dic
For Each zelle In bereich
bereich ist der Zellenbereich, der der Funktion übergeben wurde, der also durchsucht werden soll. IN der For-Schleife wird jetzt nacheinander jede Zelle der Variablen „zelle“ zugewiesen.
If Not zelle.Height = 0 And Not dic.exists(zelle.Value) Then
Wenn die Höhe der Zelle nicht 0 ist (wenn die Zeile nicht ausgeblendet ist) und wenn keine Schublade existiert, die einen Namen hat, der mit dem Inhalt der momentanen Zelle übereinstimmt
dic.Add zelle.Value, „“
dann bekommt eine Schublade des Schrankes jetzt den Zellinhalt als Namen. Die Schublade selbst bleibt leer.
End If
Next zelle
Dann wird die nächste Zelle im Bereich bearbeitet.
zählenSpezial = dic.Count
Am Ende erhält die Funktion zählenSpezial als Wert die Anzahl der Schubladen im Schrank.
End Function
zelle.Height = 0 schliesst die ausgeblendeten aus ?
Bereich wird automatisch mit dem Bereich der Formel ersetzt?
(Hab noch keine Formel in VBA geschrieben…)
Was bedeutet dic.Add und dic.exists?
Vielen Dank schonmal falls einer bisschen Zeit hat!
MfG
Gruß, Andreas