51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1961|回复: 8
打印 上一主题 下一主题

[原创] QTP 获取Excel数据

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-4-19 14:43:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当我已经获取到Excel的数据,并返回到二位数组arrRange,那么我如何遍历这个二维数组呢?
通过查找资料,使用了如下代码:



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

最后运行时报错!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-4-19 14:46:08 | 只看该作者
这个遍历方法是书《QTP 自动化测试进阶》陈技能 著
在第178页(P178)
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2012-4-19 17:36:24 | 只看该作者
单步跟踪一下不就知道了么
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 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
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 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#
     楼主| 发表于 2012-5-7 16:13:03 | 只看该作者
    回复 5# feiyunkai


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

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2012-5-7 16:14:03 | 只看该作者
    回复 4# kudianxin


        谢谢,我会尝试下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-4-28 14:26
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    8#
    发表于 2012-5-8 11:04:29 | 只看该作者
    提示错误:下标越界...
    看这意思是不是,指你遍历的范围超过了数组的范围,比如你数组里有4个值,但你现在要遍历5个值,那么下标会越界吧,
    在UBound(arrRange)和UBound(arrRange,1)后面添加个-1,不知道行不行。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-4-28 14:26
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    9#
    发表于 2012-5-8 11:06:33 | 只看该作者
    补上:原来提示说J下标越界,我搞错了...
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 21:55 , Processed in 0.084264 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表