51Testing软件测试论坛

标题: qtp读取外部excel数据的问题(已解决) [打印本页]

作者: chinafree    时间: 2010-3-30 22:37
标题: qtp读取外部excel数据的问题(已解决)
For i=1 to 10
    InvokeApplication "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
    Dialog("Login").WinEdit("Agent Name:").Set ReadExcelCell("d:\test.xls","sheet1",i,1)
    Dialog("Login").WinEdit("Agent Name:").Type micTab
    Dialog("Login").WinEdit("Password:").Set ReadExcelCell("d:\test.xls","sheet1",i,2)
    Dialog("Login").WinEdit("Password:").Type micReturn
Next


为什么运行这段代码就提示

类型不匹配: 'ReadExcelCell'
Line (24): "Dialog("Login").WinEdit("Agent Name:").Set ReadExcelCell("d:\test.xls","sheet1",i,1)".

这个错误呢,这个代码是《qtp项目应用与进阶》P227页的代码,请问错在什么地方呢。

[ 本帖最后由 chinafree 于 2010-3-31 11:31 编辑 ]
作者: chinafree    时间: 2010-3-31 09:15
难道没人知道吗
作者: jiejake    时间: 2010-3-31 10:13
set后应该跟一个string类型的字符串,有可能与ReadExcelCell("d:\test.xls","sheet1",i,1)返回的值不匹配

你试试把这句分开写,或许就不报错了
作者: chinafree    时间: 2010-3-31 10:54
原帖由 chinafree 于 2010-3-31 09:15 发表
难道没人知道吗



分开写,怎么分开呢


改成这样 Dialog("Login").WinEdit("Agent Name:").Set“” +ReadExcelCell("d:\test.xls","sheet1",i,1)

还是报错
作者: shotstar    时间: 2010-3-31 10:57
'ReadExcelCell',你这个函数能贴出来看一下么?提示类型不匹配,估计是这个函数返回值有点问题,需要看一下函数才能确定问题在哪里,有可能是传递的参数有问题导致结果出错。
作者: chinafree    时间: 2010-3-31 11:15
还是怪我看书不仔细,ReadExcelCell 这个函数的语句没有加上,我晕,

完整的代码如下,已经调试通过

Public Function ReadExcelCell (pathway,sheetname,x,y)
   Dim srcData,srcDoc,ret
   Set srcData = CreateObject("Excel.Application")
   srcData.Visible=false
   Set srcDoc= srcData.Workbooks.Open(pathway)
   srcDoc.Worksheets(sheetname).Activate
   ret = srcDoc.Worksheets(sheetname).Cells(x,y).value
   srcData.Workbooks.Close
   ReadExcelCell = ret
   Set srcData = Nothing
   Set srcDoc = Nothing
End Function

For i=1 to 2
    InvokeApplication "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
    Dialog("Login").WinEdit("Agent Name:").Set ReadExcelCell("d:\test.xls","sheet1",i,1)
    Dialog("Login").WinEdit("Agent Name:").Type micTab
    Dialog("Login").WinEdit("Password:").Set ReadExcelCell("d:\test.xls","sheet1",i,2)
    Dialog("Login").WinEdit("Password:").Type micReturn
    Dialog("Login").Close
Next
作者: shotstar    时间: 2010-3-31 11:33
呵呵。我说呢。
作者: chinafree    时间: 2010-3-31 12:35
原帖由 shotstar 于 2010-3-31 11:33 发表
呵呵。我说呢。



感谢你了,同时报怨一下作者,为什么把 两段代码分开写啊。

注释也没有
作者: hadywei    时间: 2010-4-16 17:01
原帖由 chinafree 于 2010-3-31 12:35 发表



感谢你了,同时报怨一下作者,为什么把 两段代码分开写啊。

注释也没有

能把这个问题给我发一份吗?




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