51Testing软件测试论坛

标题: QTP读取Excel,把读取Excel的代码写到VBS文件里面,在QTP里面如何循环显示所有的值 [打印本页]

作者: jix11    时间: 2015-5-19 14:53
标题: QTP读取Excel,把读取Excel的代码写到VBS文件里面,在QTP里面如何循环显示所有的值
代码是从网上找的可以执行通过
vbs里面的代码
'========================================
'名     称:QTP_ReadExcel
'作     用:从Excel读数据
'参     数:sFileName:EXCEL文件名     sSheetName:Sheet表名
'返回值:把EXCEL变为2维数组返回
'========================================
Function QTP_ReadExcel(sFileName,sSheetName)
       Dim oExcel
       Dim oSheet
       Dim oRange
       Dim arrRange

       On Error Resume Next
      ' 创建Excel应用程序对象
       Set  oExcel = CreateObject("Excel.Application")
              If err.Number <> 0 Then
                     MsgBox "未能初始化Excel" & vbCrLf & "请确保Excel已安装", vbCritical
                     Exit Function
              End If
       On Error GoTo 0

       On Error Resume Next
      ' 打开Excel文件
       oExcel.Workbooks.Open(sFileName)
        If err.Number <> 0 Then
               MsgBox "未能加载Excel文件" & vbCrLf & "请确保Excel文件路径正确或格式正确", vbCritical
               Exit Function
        End If
       On Error GoTo 0

       ' 获取表格的使用范围
       Set  oSheet = oExcel.Worksheets(sSheetName).UsedRange
      ' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值
       Set  oRange = oSheet.Range("A1:Z1000")
      '把Excel数据转换到数组
       arrRange = oRange.Value
      ' 关闭工作簿
       oExcel.WorkBooks.Item(1).Close

       ' 退出Excel
       oExcel.Quit
       Set  oExcel = Nothing
       ' 返回包含Excel数据的数组
       QTP_ReadExcel = arrRange
End Function


QTP里面写的代码
Executefile"E:\vbs\readExcel.vbs"
arrExcel  = QTP_ReadExcel("E:\vbs\122.xlsx","sheet1")
print arrExcel(1,2)

问题是我想循环使用arrExcel里面的值,这个怎么使用


作者: jix11    时间: 2015-5-19 16:45
怎么没有人帮我
作者: 赵佳乐SMILE    时间: 2015-5-19 17:46
arrExcel(1,2) 外面加层循环
作者: jix11    时间: 2015-5-19 18:54
赵佳乐SMILE 发表于 2015-5-19 17:46
arrExcel(1,2) 外面加层循环


我用这个循环但是不执行

Executefile"E:\vbs\readExcel.vbs"

Dim arrExcel
arrExcel  = QTP_ReadExcel("E:\vbs\122.xlsx","sheet1")
Dim demp
For i=1 to i=3
demp=""
For j=1 to j=3
        demp=arrExcel(i,j)
Next
print demp
Next
作者: bug在哪里    时间: 2015-5-19 19:05
DataTable参数化,或者利用 For循环。还有注意设置Test的运行方式和Action的运行方式。




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