【发布时间】:2016-07-11 15:36:50
【问题描述】:
在这里回答我自己的问题。可以调用在 Microsoft 脚本控件中运行的 JavaScript 并返回一些 JSON 数据结构。虽然可以使用脚本控件的 Evaluate 方法解析 JSON,但有时希望写入二维 (2d) 变量数组,然后可以将其直接粘贴到工作表或在用户定义的函数中返回。这不利于数据结构的编组。
不能将 2d 变量数组传递给 JavaScript 函数,写入它然后将其传回。 [如果您有不真实的证据,请发布]。所以这段代码失败了
'Tools->References->
'Microsoft Script Control 1.0; {0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}; C:\Windows\SysWOW64\msscript.ocx
Private Sub TestJSONtoOleVariantGridFails1()
Dim oScriptEngine As ScriptControl
Set oScriptEngine = New ScriptControl
oScriptEngine.Language = "JScript"
oScriptEngine.AddCode "function WriteResults1(vGrid) { vGrid(0,0)=1.2;vGrid(0,1)='red';vGrid(1,0)=true;vGrid(1,1)=null; return vGrid;};"
ReDim vGridBefore(0 To 1, 0 To 1)
Dim vGridAfter
vGridAfter = oScriptEngine.Run("WriteResults1", vGridBefore) '<---- FAILS with error "Cannot assign to a function result"
Debug.Assert vGridAfter(0, 0) = 1.2
Debug.Assert vGridAfter(0, 1) = "red"
Debug.Assert vGridAfter(1, 0) = True
Debug.Assert IsNull(vGridAfter(1, 1))
End Sub
那么这就引出了如何最好地填充二维变量数组的问题?
我有一个正在发布的解决方案,但我很想知道其他人是否已经弄清楚 JSON 和 2d 变体数组之间的编组。
【问题讨论】:
标签: javascript json excel vba