VBS用while/wend遍历excel的语句问题
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 编辑 ] While ExcelSheet.Cells(Row,1).Value <> Null
ExcelSheet.Cells(Row,1).Value=90 //此语句现在没起作用
Row=Row+1
Wend
跟踪下,看有没有执行WHILE里面的语句? 原帖由 FLY000 于 2009-7-31 10:47 发表 http://bbs.51testing.com/images/common/back.gif
While ExcelSheet.Cells(Row,1).ValueNull
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 编辑 ] While ExcelSheet.Cells(Row,1).Value <> Null 这句替换成下面的就可以了
While ExcelSheet.Cells(Row,1).Value <> empty
null指变量非法,empty表示变量未初始化
还有可以用下面语句
While not isEmpty(ExcelSheet.Cells(Row,1).Value) 谢谢楼上的,按照你说的改就可以了,非常感谢! ^_^ ExcelSheet.Cells(Row,1)<>""这样也可以
页:
[1]