VBA字典,类别424对象必需错误

时间:2018-11-07 15:54:48

标签: vba class dictionary compiler-errors

此代码有424个对象错误。

   Dim singleKey As Variant

    For Each singleKey In thecollection.Keys()

        Debug.Print thecollection.Item(singleKey).Country

    Next singleKey

该错误是由debug.print行引起的。

国家/地区属于自定义类别。

我很茫然。

1 个答案:

答案 0 :(得分:1)

  

如果我删除“国家/地区”,则代码将运行并返回索引号。

然后,您正在用数字填充字典,这可能是由于将KeyItem自变量转换为Dictionary.Add方法,但这很难看出来。

>

“必需对象”表示您要对不是对象的东西(例如数字或字符串)进行成员调用。

为了使thecollection.Item(singleKey).Country成功,您需要用具有thecollection属性的对象填充DictionaryCountry BTW的一个非常误导的名称)。

例如,您将有一个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

然后您的代码将起作用。就是说,我意识到这是示例代码,但是迭代字典键并不能使我感到非常有效。