I guess UserDataDictionary is not initialized at the beginning as:
Dim UserDataDictionary
Set UserDataDictionary = CreateObject("Scripting.Dictionary")
I guess UserDataDictionary is not initialized at the beginning as:
Dim UserDataDictionary
Set UserDataDictionary = CreateObject("Scripting.Dictionary")