请考虑以下事项:
Dim p As myObject
Dim pDict As Scripting.Dictionary
p = New myObject
pDict = New Scripting.Dictionary
pDict.Item(Range("A" & i).Value) = p
p
通过DefProperty
拥有默认属性Attribute Value.VB_UserMemId = 0
。
当我尝试将p
添加到pDict
时,只会添加默认属性。所需的结果是将p
的完整添加到pDict
。
致电? p
与致电? p.DefProperty
相同,所以事后我可以理解为什么我会得到错误的结果 - 我不明白的是如何获得对了。
答案 0 :(得分:1)
您将不得不Set pDict.Item(Range("A" & i).Value) = p
。对p对象的后续更改应反映在该字典项中。与将范围类型变量设置为Range object类似。