0

我一直试图弄清楚如何做到这一点。这是我的情况:

我有一个 Excel 电子表格(我们称之为“workbook.xls”,我有两张表格需要用于我的脚本。一张表格有一列数据“columnA”,我正在尝试将单元格 A2(A1 是header) 到我的 QTP 脚本中使用。

我希望能够使用这个特定的值,然后处理一些数据,然后使用下一个单元格,A3 来处理另一个过程/过程,等等。这可能吗?

在其他语言中,我知道我可以使用 for 循环来遍历数据,但我一直在尝试处理数据,然后返回循环以获取数据。

例如:

Excel 可能将 A2 设为“1”,将 A3 设为“2”。我希望能够将 A1 的值放入浏览器的输入字段中。然后我希望能够使用该值执行一些操作(单击、写入另一个文件等)。然后我想移动到值 A3 上并将 A3 的值放入与以前相同的输入字段中,然后执行一些其他操作(这可能不是我对 A2 所做的)。我想知道如何实现这种情况。

提前致谢。

4

2 回答 2

0

是的,这是可能的。假设我正确理解了您的问题,您可以执行以下操作:

Set xl = CreateObject("Excel.Application")
xl.Visible = True  'set to False for production

Set wb = xl.Workbooks.Open("C:\path\to\workbook.xls")
Set ws = wb.Sheets(1)

firstRow = ws.UsedRange.Rows(1).Row
lastRow  = firstRow - 1 + ws.UsedRange.Rows.Count

For i = firstRow+1 To lastRow
  val = ws.Cells(i, 1).Value   'get value from cell
  'do stuff with val
Next

wb.Close
xl.Quit
于 2013-08-22T20:56:50.393 回答
0

测试的 DataTable 是 Excel 电子表格。您可以将数据导入 QTP 中的测试 DataTable - 在默认工作表中或添加您自己的工作表 - 然后在代码中访问它们:

Set sheet = DataTable.GetSheet "Sheet Name"
numRows = sheet.GetRowCount

For index = 0 To numRows
    value = sheet.GetParameter(index)
    'Do something
Next
于 2013-08-22T20:59:00.083 回答