O objeto do dicionário que adiciona itens antes de .add () é chamado
Eu estou usando um objeto de dicionário doBiblioteca do MS Scripting Runtime para armazenar uma série de matrizes e executar operações nas células da matriz, conforme necessário. Há um loop for para percorrer o processo de criação de todas essas entradas. Meu problema é que ao usar o.exists
propriedade, ele está retornandoTrue
mesmo antes do item ter sido adicionado.
Depuração mais próxima indica que a chave está sendo adicionada ao dicionário no início do loop for, mesmo que não.add
O comando é usado e não será usado até o final do loop.
Eu tentei algumas configurações diferentes, mas aqui está um exemplo simples que falha:
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
Onde cada célula contém uma string / id exclusivo. Na instrução If, o código está retornando falso, mesmo na primeira iteração.