Если я удаляю «Страна», запускается код, и он возвращает индексный номер.
Затем вы заполняете свой словарь числами, возможно, из-за инвертирования аргументов Key
и Item
в метод Dictionary.Add
, но это трудно понять, не увидев этот код.
«Требуется объект» означает, что вы совершаете вызов члена для чего-то, что не является объектом ... например, числом или строкой.
Для успеха thecollection.Item(singleKey).Country
необходимо заполнить thecollection
(очень вводящее в заблуждение имя для Dictionary
BTW) объектами, имеющими свойство Country
.
Например, у вас есть модуль класса Thing
с этим кодом:
Option Explicit
Private mCountry As String
Public Property Get Country() As String
Country = mCountry
End Property
Public Property Let Country(ByVal value As String)
mCountry = value
End Property
Тогда вы будете создавать экземпляры этого класса и заполнять ими словарь:
Dim thing1 As Thing
Set thing1 = New Thing
thing1.Country = "Canada"
thecollection.Add "foo", thing1 ' note: key first, then the item
Тогда ваш код будет работать. Тем не менее, я понимаю, что это примерный код, но итерация словарных ключей не кажется мне очень эффективной.