51Testing软件测试论坛

标题: QTP 获取Excel数据 [打印本页]

作者: 6道9    时间: 2012-4-19 14:43
标题: QTP 获取Excel数据
当我已经获取到Excel的数据,并返回到二位数组arrRange,那么我如何遍历这个二维数组呢?
通过查找资料,使用了如下代码:

[attach]78536[/attach]

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

最后运行时报错!

[attach]78537[/attach]
作者: 6道9    时间: 2012-4-19 14:46
这个遍历方法是书《QTP 自动化测试进阶》陈技能 著
在第178页(P178)
作者: 026300    时间: 2012-4-19 17:36
单步跟踪一下不就知道了么
作者: kudianxin    时间: 2012-4-20 09:31
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
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
回复 5# feiyunkai


    今天才又登录论坛,看见你的回复,我会尝试下!谢谢
作者: 6道9    时间: 2012-5-7 16:14
回复 4# kudianxin


    谢谢,我会尝试下!
作者: yubing4828    时间: 2012-5-8 11:04
提示错误:下标越界...
看这意思是不是,指你遍历的范围超过了数组的范围,比如你数组里有4个值,但你现在要遍历5个值,那么下标会越界吧,
在UBound(arrRange)和UBound(arrRange,1)后面添加个-1,不知道行不行。
作者: yubing4828    时间: 2012-5-8 11:06
补上:原来提示说J下标越界,我搞错了...




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2