|
这几天我一直在忙着做QTP的脚本,今天遇到了一个棘手的问题,弄了一天也没有好办法解决。
我要做的工作是将测试报告作为附件在执行完自动化测试脚本之后,发送到程序员的邮箱里。
我大概是这么写的:
'先将*.xls文件导入
DataTable.ImportSheet "C:\***\****l.xls","MailTable","MailTable"
'从文件读取发送人列表——To
nextRow = empty '清空值,以便后面使用
Do While DataTable.RawValue(1,"MailTable") <> Empty
nextRow = DataTable.RawValue(1,"MailTable")
mailTo = mailTo + nextRow + ";"
DataTable.SetNextRow
Loop
mailTo = left( mailTo,len(mailTo) - 1 ) '去除最后的分号
DataTable.SetCurrentRow(1)
'从文件读取抄送人列表——CC
nextRow = empty '清空值,以便后面使用
Do While DataTable.RawValue(2,"MailTable") <> Empty
nextRow = DataTable.RawValue(2,"MailTable")
mailCC = mailCC + nextRow + ";"
DataTable.SetNextRow
Loop
mailCC = left( mailCC,len(mailCC) - 1 ) '去除最后的分号
DataTable.SetCurrentRow(1)
…………………………
但是如果此时*xls文件中,第二列的行数是该表单中最长的一行,程序根据循环走到第二列最后一行时,本应该读到“DataTable.SetNextRow”这一行的时候继续向下读,读到的值是空值,就能退出循环了,但是,程序却没有这样做,而是读到“DataTable.SetNextRow”这一行的时候,返回到了该列的第一行,结果就陷入了死循环中。
各位同仁是否也遇到过同样的问题,因该如何解决呢?
我只想能够把每一列的内容读出来,不落下任何一行的信息,也不多读取多余的信息。
[ 本帖最后由 金城月 于 2007-5-11 20:09 编辑 ] |
|