VBA Zählenwenn Array Dict
13.02.2020 22:51:16
Max
ich habe ein kleines Problem, was ihr sicherlich mit Leichtigkeit lösen könnt.
in Worksheets(1) Spalte A ist der zu durchsuchende Bereich. In Worksheets(2) Zeile A1:A4 sind die Zahlen, die im Suchbereich gezählt werden sollen. Das ist nur eine kleine Ausführung von dem, was tatsächlich abgefragt werden soll. Hier kommt es zu mehr als 200.000 Datensätzen.
Hier der Beispielcode, den ich aus dem Internet habe und versucht habe auf meine Bedürfnisse anzuzpassen, leider vergeblich.
"
Sub Zählenwenn()
Dim Cl As Range
Dim Itm As Variant
Dim tmp As Variant
With CreateObject("scripting.dictionary")
For Each Cl In Worksheets(1).Range("A1", Worksheets(1).Range("A" & Rows.Count).End(xlUp))
If Not .Exists(Cl.Value) Then
.Add Cl.Value, Array(Cl, 1)
Else
tmp = .Item(Cl.Value)
tmp(1) = tmp(1) + 1
.Item(Cl.Value) = tmp
End If
Next Cl
For Each Itm In Worksheets(2).Range("A1", Worksheets(2).Range("A" & Rows.Count).End(xlUp)) _
If .Exists(Itm) Then Itm.Offset(, 1).Value = Itm(1).Count
Next Itm
End With
End Sub
"Hier:
"For Each Itm In Worksheets(2).Range("A1", Worksheets(2).Range("A" & Rows.Count).End(xlUp))
If .Exists(Itm) Then Itm.Offset(, 1).Value = Itm(1)
Next Itm"
schaffe ich es nicht die Suchzahl aus Worksheets(2) im Dictionary auszulesen und die Anzahl aus Worksheets(1) in Worksheets(2) Spalte B (neben der Suchzahl) einzutragen.
Könnt ihr mir helfen?
Besten Dank im Voraus
Max