Diana_zhaozhao 发表于 2011-11-3 16:26:34

到底怎样使用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:58

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

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

        Set newBook = Nothing
        ExcelApp.Quit
        Set ExcelApp = Nothing
        Set fObject = Nothing
End Function

Diana_zhaozhao 发表于 2011-11-4 09:33:35

非常感谢楼上的,代码收藏了!
昨天我的也解决了,用了三步:
Set excobj = createobject("excle.application")
set excfilr = excobj.workbooks.open(filepath)
set excshet = excfile.workseets(sheetname)
页: [1]
查看完整版本: 到底怎样使用QTP操作Excel表格?网上说的没一个能用的!