Экземпляр:
Set resource = CreateObject("scripting.dictionary")
Нужно быть в подпрограмме / функции, не входящей в объявление, вы можете добавить ее в удобное для вас место или изменить объявление на:
Private resource as object
идобавьте контрольную проверку всякий раз, когда вы получаете к ней доступ (очевидно, лучше создать ее один раз в другом месте);
If resource Is Nothing Then Set resource = CreateObject("scripting.dictionary")
И в вызове .add
не должно быть скобок, поэтому:
resource.Add key, trx