如何在vba中解析JavaScript数组?

JavaScript 数组 可以用以下三种方式创建:

方式1:

var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";

方式2:

var cars=new Array("Audi","BMW","Volvo");

方式3:

var cars=["Audi","BMW","Volvo"];

数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。

JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。

在 JavaScript 中,对象是拥有属性和方法的数据。

也就是用以上任意一种方式创建的数组,cars就是一个数组对象。

它有属性和方法,JavaScript中使用对象的属性和方法与vba中一样。

JavaScript的数组的属性和方法可以在官方文档中找到。

其中数组的length属性(区分大小写)可以返回设置或返回数组中元素的数目。

以下vba代码举例演示了如何解析JavaScript的数组:

Sub QQ1722187970()
    Dim sJS As String
    'JS数组
    sJS = "[""Audi"",""BMW"",""Volvo""]"
    Dim oHtml As Object
    '定义HtmlDocument对象
    Set oHtml = CreateObject("htmlfile")
    Dim oWindow As Object
    Set oWindow = oHtml.parentWindow
    With oWindow
        .execScript "var arr=" & sJS
        '获取JS数组的元素数目,JS数组的length属性可以设置或返回数组中元素的数目
        iLen = VBA.CallByName(.arr, "length", VbGet)
        '遍历所有JS数组元素
        For i = 0 To iLen - 1
            .execScript "var arrElement=arr[" & i & "]"
            '输出数组元素
            Debug.Print .arrElement
        Next i
    End With
    Set oHtml = Nothing
    Set oWindow = Nothing
End Sub
       

发表评论