Dictionary-Objekt, das Elemente hinzufügt, bevor .add () aufgerufen wird
Ich verwende ein Dictionary-Objekt aus demMS Scripting Runtime-Bibliothek Speichern einer Reihe von Arrays und Ausführen von Operationen an den Array-Zellen nach Bedarf. Es gibt eine for-Schleife, in der alle diese Einträge erstellt werden. Mein Problem ist, dass bei der Verwendung der.exists
Eigentum, es kehrt zurückTrue
noch bevor der Artikel hinzugefügt wurde.
Ein genaueres Debuggen zeigt an, dass der Schlüssel zu Beginn der for-Schleife zum Wörterbuch hinzugefügt wird, obwohl no.add
Befehl wird verwendet und erst am Ende der Schleife verwendet.
Ich habe ein paar verschiedene Konfigurationen ausprobiert, aber hier ist ein einfaches Beispiel, das fehlschlägt:
Dim dTotals As Dictionary
Set dTotals = New Dictionary
dTotals.CompareMode = BinaryCompare
For Each cell In rAppID
If Not dTotals.Exists(cell) Then
Set rAppIDCells = Find_Range(cell, rAppID)
Set rAppIDValues = rAppIDCells.Offset(0, 6)
dAppIDTotal = WorksheetFunction.Sum(rAppIDValues)
dTotals.Add Key:=cell.Value, Item:=dAppIDTotal
End If
Next cell
Wobei jede Zelle eine Zeichenfolge / eindeutige ID enthält. Bei der If-Anweisung gibt der Code bereits bei der ersten Iteration false zurück.