6道9 发表于 2012-4-19 14:43:48

QTP 获取Excel数据

当我已经获取到Excel的数据,并返回到二位数组arrRange,那么我如何遍历这个二维数组呢?
通过查找资料,使用了如下代码:



'遍历数据行
For I=1 to UBound(arrRange)
        '遍历数据列
        For J= 1 to UBound(arrRange,1)
                Print arrRange(I,J)
        Next
Next

最后运行时报错!

6道9 发表于 2012-4-19 14:46:08

这个遍历方法是书《QTP 自动化测试进阶》陈技能 著
在第178页(P178)

026300 发表于 2012-4-19 17:36:24

单步跟踪一下不就知道了么

kudianxin 发表于 2012-4-20 09:31:52

dim path,work,shell,o
set o=createobject("excel.application")
path="D:\q.xlsx"
set work=o.workbooks.open(path)
set shell=work.sheets("Sheet1")
r=shell.usedrange.rows.count
c=shell.usedrange.columns.count
msgbox(r)
msgbox(c)
for i=1 to r
    for j=1 to c
      msgbox shell.cells(i,j)         
      next
next
work.save
work.close
o.quit
set shell=nothing
set work=nothing
set o=nothing

feiyunkai 发表于 2012-4-25 17:58:20

UBound用法:UBound(arrRange,num)
arrRange是数组,num是数组纬度,若num不输则默认为1,所以UBound(arrRange)和
UBound(arrRange,1)取的值是一样的,正确写法:

For I=1 to UBound(arrRange,1)
      '遍历数据列
      For J= 1 to UBound(arrRange,2)
                Print arrRange(I,J)
      Next
Next

6道9 发表于 2012-5-7 16:13:03

回复 5# feiyunkai


    今天才又登录论坛,看见你的回复,我会尝试下!谢谢

6道9 发表于 2012-5-7 16:14:03

回复 4# kudianxin


    谢谢,我会尝试下!

yubing4828 发表于 2012-5-8 11:04:29

提示错误:下标越界...
看这意思是不是,指你遍历的范围超过了数组的范围,比如你数组里有4个值,但你现在要遍历5个值,那么下标会越界吧,
在UBound(arrRange)和UBound(arrRange,1)后面添加个-1,不知道行不行。

yubing4828 发表于 2012-5-8 11:06:33

补上:原来提示说J下标越界,我搞错了...
页: [1]
查看完整版本: QTP 获取Excel数据