这个是个非常非常常用且实用的函数,使用QTP读取Excel中的数据。
先贴上函数:
'========================================
'名 称: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
再贴上调用方法:
Dim arrExcel
arrExcel = QTP_ReadExcel("D:\test.xls","sheet1")
print arrExcel(1,2)
假设表格如下,
要使用D2,则为arrExcel(2,4)
要使用A10,则为arrExcel(10,1),应该找出规律了吧。
我一般用此函数进行参数化和配置的操作,将需要测试的数据写在Excel中,在运行QTP时,会进行读取Excel中数据来进行测试。也会将一些配置写入Excel中,如用1和0表示是否,来进行是否重启IE、是否写Log等动作的控制,也可以写入数字,来控制脚本的运行次数,个人感觉挺方便的。
还是不太喜欢使用QTP自带的DataTable,一来是觉得多台测试机的情况下,每台都要配置比较麻烦,二来是担心一些配置会影响脚本。
我一般用此函数进行参数化和配置的操作,将需要测试的数据写在Excel中,在运行QTP时,会进行读取Excel中数据来进行测试。也会将一些配置写入Excel中,如用1和0表示是否,来进行是否重启IE、是否写Log等动作的控制,也可以写入数字,来控制脚本的运行次数,个人感觉挺方便的。
还是不太喜欢使用QTP自带的DataTable,一来是觉得多台测试机的情况下,每台都要配置比较麻烦,二来是担心一些配置会影响脚本。