我有一个非常奇怪的问题。 Variant类型的变量Item包含一个字典数组。它来自另一个模块,我无法改变它。我想将它分配给字典值
Dim MyDict as New Dictionary
set MyDict(key)=Item
这会产生错误“参数数量错误或属性分配无效”
然而,这段代码运作良好:
Dim MyDict as New Dictionary
Dim oTemp as Object
set oTemp=Item
set MyDict(key)=oTemp
为什么会这样,我可以不使用oTemp吗? VBA中没有CObj功能。
UPD:我已经简化了上面的代码,使其更加清晰,但这是实际的代码:
Dim item As Variant
Dim JSONDict As New Dictionary
Dim oTemp As Object
Dim i As Integer
Set JSON = ParseJson(JsonString)
For Each item In JSON.Items
For i = 1 To item.Count
Set oTemp = item(i)
Set JSONDict(item(i)("isbn13")) = oTemp
Next
接着 这段代码工作正常但如果我不使用中间的oTemp变量就会中断。我不懂为什么。 这是本地窗口的屏幕