代码之家  ›  专栏  ›  技术社区  ›  Eitel Dagnin

qtp/uft-在一个数组中存储多个数组

  •  0
  • Eitel Dagnin  · 技术社区  · 6 年前

    我有一个函数,它将一个工作表导入到全局工作表,然后在列和行之间循环以创建一个数组。

    代码

    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 回复  |  直到 6 年前
        1
  •  1
  •   Bela Tamas Jozsa    6 年前

    使用多维数组

    '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
    

    列名称作为数组索引是不正常的-这已经是一个字典(映射)