Obiekt słownika dodający elementy przed wywołaniem .add ()
Używam obiektu słownika zBiblioteka środowiska wykonawczego skryptów MS do przechowywania szeregu tablic i wykonywania operacji na komórkach macierzy, jeśli to konieczne. Istnieje pętla for, aby przejść przez proces tworzenia wszystkich tych wpisów. Mam problem z używaniem.exists
nieruchomość, wracaTrue
nawet przed dodaniem przedmiotu.
Bliższe debugowanie wskazuje, że klucz jest dodawany do słownika na początku pętli for, mimo że nie.add
komenda jest używana i nie będzie używana do końca pętli.
Próbowałem kilku różnych konfiguracji, ale tutaj jest prosty przykład, który się nie udaje:
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
Gdzie każda komórka zawiera ciąg / unikalny identyfikator. W instrukcji If kod powraca fałsz, nawet przy pierwszej iteracji.