51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4320|回复: 5
打印 上一主题 下一主题

[求助] VBS用while/wend遍历excel的语句问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-7-31 10:27:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Excel 中有三行数据,如图一所示:
我写了一段代码想把每一行都设值为90,代码如下:
    Dim ExcelApp,ExcelWorkBook,ExcelSheet
    Dim Row
    Row=1
    Set ExcelApp = CreateObject("Excel.Application")
    ExcelApp.Workbooks.Add
    ExcelApp.Visible = True
    Set ExcelWorkBook = ExcelApp.Workbooks.Open("C:\test.xls")
    Set ExcelSheet=ExcelWorkBook.Worksheets(1)
    While ExcelSheet.Cells(Row,1).Value <> Null
       ExcelSheet.Cells(Row,1).Value=90   //此语句现在没起作用
       Row=Row+1
    Wend
       MsgBox (Row)
       ExcelSheet.Cells(Row,1).Value=90 //现在是因为这个语句,才把第一行设为90的
       ExcelWorkBook.Save
ExcelWorkBook.Close(True)
ExcelApp.Application.Quit
Set ExcelSheet=Nothing
Set ExcelWorkBook=Nothing
Set ExcelApp=Nothing
编译运行后发现只是第一行的值变成了90了,Row 每次也只是1.
烦请大家帮忙看看while那段语句是否有什么问题?因为好像while那几个句子没有运行。
多谢大家了!

[ 本帖最后由 topor 于 2009-7-31 10:30 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

2#
发表于 2009-7-31 10:47:34 | 只看该作者
While ExcelSheet.Cells(Row,1).Value <> Null
      ExcelSheet.Cells(Row,1).Value=90   //此语句现在没起作用
   Row=Row+1
Wend

跟踪下,看有没有执行WHILE里面的语句?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-7-31 11:06:06 | 只看该作者
原帖由 FLY000 于 2009-7-31 10:47 发表
While ExcelSheet.Cells(Row,1).Value  Null
      ExcelSheet.Cells(Row,1).Value=90   //此语句现在没起作用
   Row=Row+1
Wend

跟踪下,看有没有执行WHILE里面的语句?


好像是没有执行到的
While ExcelSheet.Cells(Row,1).Value <> Null
      ExcelSheet.Cells(Row,1).Value=90   //此语句现在没起作用
      Row=Row+1
      msgbox (Row)            //以前加过这个语句,但是没有msgbox 出来,所以可以确定while里面的语句没有执行
Wend

为什么会这样呢?
是不是while 判断写的有问题呀?

[ 本帖最后由 topor 于 2009-7-31 11:07 编辑 ]
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2015-3-12 14:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2009-7-31 13:54:57 | 只看该作者
    While ExcelSheet.Cells(Row,1).Value <> Null 这句替换成下面的就可以了
    While ExcelSheet.Cells(Row,1).Value <> empty
    null指变量非法,empty表示变量未初始化

    还有可以用下面语句
    While not isEmpty(ExcelSheet.Cells(Row,1).Value)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2009-7-31 14:02:19 | 只看该作者
    谢谢楼上的,按照你说的改就可以了,非常感谢! ^_^
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2009-7-31 14:26:15 | 只看该作者
    ExcelSheet.Cells(Row,1)<>""这样也可以
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-29 02:43 , Processed in 0.090591 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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