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

时间:2013-08-22 18:54:41

标签: excel vba excel-vba vbscript qtp

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

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

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

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

例如:

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

提前致谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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