QTP / UFT-在一个阵列中存储多个阵列

时间:2018-07-17 08:47:36

标签: vbscript qtp hp-uft

我有一个功能,可以将工作表导入到全局工作表,然后遍历列和行以创建数组。

代码

Public Function importArray()

    DataTable.ImportSheet "location","Lists", "Global"

    rowCount = DataTable.GetSheet(dtGlobalSheet).GetRowCount -1
    columnCount = DataTable.GetSheet(dtGlobalSheet).GetParameterCount

    ReDim myArray(-1)  

    For x = 1 to columnCount Step 1

        For i = 0 to rowCount Step 1

            ReDim Preserve myArray(UBound(myArray) + 1)
            myArray(i) = Datatable.Value(x, dtGlobalSheet)      
            Datatable.SetNextRow

        Next

        MsgBox Join(myArray, vbNewLine)

    Next

End Function

因此,现在我知道可以将列放入数组中,我需要分别存储每个数组。

例如:

主数组= myArray(i)

调用importArray()获取数组

列数= 2

列名=名称,姓氏

将数组存储到名称为列名的数组变量中

使用存储的数组填充myArray()

myArray(Name(),Surname())

我要这样做的原因是因为我有一个函数,需要引用这些数组以在数组中查找值,然后执行一些逻辑。虽然我知道可以一一创建数组,但问题是我可能要使用20个数组,在这种情况下,代码会变得非常庞大。

也许有一种更好的方法可以做我想做的事情,但除此之外,在此方面的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用多维数组

'Declare a Dynamic Array
Dim arrData()

' Make it a multidimensional array
ReDim Preserve arrData(rowCount, colCount)

For Loop row
    For Loop col
       arrData(row, col) = ...
    Next
Next

列名不能用作数组索引-这已经是字典(地图)