Scripting.Dictionary likes to add values for no reason when you look up! Demonstrated with a 30 second example:
Create a new sheet and fill out A1:A4 = {1,2,3,4}
Insert the new vba module and add this code
Public Sub test()
Dim rowIndex As Integer
'
Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary
For rowIndex = 1 To 4
dict.Add Trim(Sheet1.Cells(rowIndex, 1).Value), rowIndex
Dim notEvenAddingSoWhyAreYouAdding As Variant
notEvenAddingSoWhyAreYouAdding = dict(Sheet1.Cells(rowIndex, 1).Value)
Next rowIndex
End Sub
Put a breakpoint on Next rowIndex
Run sub and check the value dict. Now it has two meanings: "1"and 1, as you can see in the image below:

What the hell ?!
I understand that I have a function Trim(...)in the string dict.Add(), which means that two different keys are used, but why does this add an extra value when it does a search ?! It makes no sense - now dict.Countit won’t give the meaning that I would expect.