Vba 在QuickTest Pro中使用Excel电子表格中的数据

Vba 在QuickTest Pro中使用Excel电子表格中的数据,vba,excel,vbscript,qtp,Vba,Excel,Vbscript,Qtp,有一段时间我一直在想怎么做。。以下是我的情况: 我有一个Excel电子表格(我们称之为“workbook.xls”),我有两张表格需要用于我的脚本。一张表格有一列数据“columnA”,我正试图将单元格A2(A1是标题)放入我的QTP脚本中使用 我希望能够使用这个特定值,然后处理一些数据,然后使用下一个单元格,A3处理另一个过程/过程,等等..这可能吗 在其他语言中,我知道我可以使用for循环来迭代数据,但我一直在尝试处理数据,然后返回循环以获取数据 例如: Excel可能将A2设为“1”,A3

有一段时间我一直在想怎么做。。以下是我的情况:

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

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

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

例如:

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


提前谢谢。

是的,有可能。假设我正确理解了你的问题,你可以这样做:

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

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

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

For index = 0 To numRows
    value = sheet.GetParameter(index)
    'Do something
Next