在VBA中转换为对象

时间:2018-02-12 21:51:41

标签: vba excel-vba excel

我有一个非常奇怪的问题。 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变量就会中断。我不懂为什么。 这是本地窗口的屏幕

enter image description here enter image description here

enter image description here

0 个答案:

没有答案