我在qtp中使用GetCellData
对象的WebTable
方法来获取webtable的每个单元格值,该webtable在多个页面中有多行并写入数据表。以下是我正在使用的代码:
For i = 2 to rowct
For j = 1 to colct
Datatable.Value(j+1,"sheet1") = trim(frame1.WebTable("table1" ).GetCellData(i,j))
Next
Next
在for循环之前获取行和列计数,如下所示:
rowct = frame1.WebTable("table1").RowCount
colct = frame1.WebTable("table1").ColumnCount(1)
但有时,我对某些单元格出现以下错误,到目前为止我看不到任何模式,这让我觉得这是一个随机问题:
错误:指定的单元格不存在。"
更多信息:
通常第一行有此错误:
请输入搜索。
错误是在单元级别而不是在webtable / row级别。虽然在大多数情况下,我看到当一个单元格出现这样的错误时,整个表格(因为我写入数据表格)具有相同的错误。
发生此类错误时,我看到提取的行数大于webtable中的实际行数。也就是说,如果实际表中有一行,那么我的数据表有5行(依此类推)。这也是随机的。
i = 2
因为我不想要第一行,因为它包含标题。
已经坚持了一段时间,非常感谢任何帮助!
答案 0 :(得分:1)
Web表每行可能包含不同数量的单元格,这就是WebTable.ColumnCount
接受参数(行号)的原因。
试试这个:
For i = 2 to frame1.WebTable("table1").RowCount
For j = 1 to frame1.WebTable("table1").ColumnCount(i)
Datatable.Value(j+1,"sheet1") = trim(frame1.WebTable("table1" ).GetCellData(i,j))
Next
Next