将JS数组转换为VBA数组。如何调用数组var

时间:2017-02-08 14:40:56

标签: javascript arrays vba excel-vba excel

我在VBA工作。我想将JS数组转换为VBA数组。我快到了。我正在填充数组:" Classarray"成功!但是我调用一个将它转换为VBA数组的函数时遇到问题。我使用的功能在这里:

Dim SortedArray As Variant
Dim jsObj As New ScriptControl
jsObj.Language = "JScript"    
With jsObj
  .AddCode _
    "var classArray = new Array();" & ArrayString & _
    "function setArray(ja) {" & _
    "var dict = new ActiveXObject('Scripting.Dictionary');" & _
    "for (var i=0;i < ja.length; i++ )dict.add(i,ja[i]);" & _
    "return dict.items();}"
  SortedArray = .Run("setArray", classArray)
End With

问题在于&#34; SortedArray = .Run(&#34; setArray&#34;,classArray)。我有错误&#34;错误:5007&#39; lenght&#39;是null或不是对象&#34;在调试模式下,当它在classarray上显示时,它会显示&#34;空&#34;,但它不是!见附件.jpg。你能告诉我我在做什么吗。运行功能?谢谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

好的,我解决了。在功能中,我用“classarray”替换了“ja”。抱怨发布我自己回答的问题,我试着整天找到解决方案。 无论如何,有人可能会将此代码用于他自己的目的。