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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage