51Testing软件测试论坛

标题: 到底怎样使用QTP操作Excel表格?网上说的没一个能用的! [打印本页]

作者: Diana_zhaozhao    时间: 2011-11-3 16:26
标题: 到底怎样使用QTP操作Excel表格?网上说的没一个能用的!
我只不过想把一个Sheet表中的一个单元格的值取出来,从网上找到这样一个函数,而且注释好像还是错的:
********************************************************************' 函数说明:获取工作表excelSheet单元格的值
' 参数说明:
'          (1)excelSheet:工作表名称;
'          (2)row:列的序号;
'          (3)column:行的序号;
' 返回结果:
'          (1)单元格存在,返回单元格值;
'          (2)单元格不存在,返回0;
' 调用方法:
'           set CellValue = GetCellValue(excelSheet, 1, 2)
' ********************************************************************Function GetCellValue(excelSheet, row, column)
    value = 0
    Err = 0
    On Error Resume Next
    tempValue = excelSheet.Cells(row, column)
    If Err = 0 Then
        value = tempValue
        Err = 0
    End If
    On Error GoTo 0
    GetCellValue = value
End Function


********************************************************************
Val = GetCellValuel(result,1,5)
“result”是Sheet名,这样用法到底问题出在哪里呢?
总是报错,类型不匹配。
作者: lyscser    时间: 2011-11-3 20:55
1、你现在用的是一组函数中的一个,他们肯定是有相互调用关系的,你拷出这几行没有意义;
2、on error resume next对于vbs初学者在调试过程中没有任何好处,去掉之后你或许能得到一点有用的信息;
3、给个傻瓜例子吧,你所谓网上“没一个能用的”不会是天涯水区或者偷菜的网站吧。
  1. '***************************************************************************************************************************
  2. '设计说明: 读指定行和列的EXCEL的值
  3. '程序输入:        
  4. '                1. sheetName -- 读取的SHEET;
  5. '                2. rowNum -- 指定行;
  6. '                3. colNum -- 指定的行;
  7. '                4. appointedFile -- 文件全路径(含文件名称和后缀名)
  8. '程序输出: 读取的指定单元格的值
  9. '设计人员: XXXXX
  10. '设计时间: 2008-11-05
  11. '调用举例: Msgbox GetExcelCellValue("指定页",3,4,"D:\test.xls")
  12. '***************************************************************************************************************************

  13. Public Function GetExcelCellValue(sheetName, rowNum, colNum, appointedFile)  
  14.         On Error Resume Next
  15.         Set fObject = CreateObject("Scripting.FileSystemObject")
  16.        
  17.         If         Not fObject.FileExists(appointedFile) Then
  18.                 Report micFail,"参数文件不存在:","指定文件:【" & appointedFile & "】未找到,请确认文件路径!"
  19.                 Set fObject = Nothing
  20.                 Exit Function
  21.         End If
  22.        
  23.         Set ExcelApp = CreateObject("Excel.Application")
  24.         ExcelApp.Visible = False
  25.         ExcelApp.DisplayAlerts = False   '隐藏EXCEL的告警提示
  26.         Set newBook = ExcelApp.Workbooks.Open(appointedFile,False,True)  '只读模式
  27.         newBook.Worksheets(sheetName).Activate
  28.         GetExcelCellValue = newBook.Worksheets(sheetName).Cells(rowNum, colNum).Value

  29.         Set newBook = Nothing
  30.         ExcelApp.Quit
  31.         Set ExcelApp = Nothing
  32.         Set fObject = Nothing
  33. End Function
复制代码

作者: Diana_zhaozhao    时间: 2011-11-4 09:33
非常感谢楼上的,代码收藏了!
昨天我的也解决了,用了三步:
Set excobj = createobject("excle.application")
set excfilr = excobj.workbooks.open(filepath)
set excshet = excfile.workseets(sheetname)




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