cells(i,j) i,j应该从1开始。
从你的代码来看,i,j都没有显式设置下限,而是以当前单元格是否为空来判断,这对EXCEL应用来说不是个好习惯,除非你没有别的办法判断。
需要加上错误处理代码,并释放资源

解决方案 »

  1.   

    不要用rSheet.Cells(i, j).Value = ""来判断循环结束,用ISBLANK函数来判断。
      

  2.   

    谢谢楼上的朋友!
    很抱歉,我忘记写了:
      程序的错误是找不到("g:\a.xls")要打开的文件
    清在指点!
      

  3.   

    rApp.Workbooks.Open Filename:="g:\a.xls"
      

  4.   

    ("g:\a.xls")要打开的文件 path erros
      

  5.   

    修改后代码如下;
      错误还是打不开文件 "g:\a.xls" ?不知道我的程序读数据方法对不对?       
        Dim rApp As Excel.Application
        Dim rBook As Excel.Workbook
        Dim rSheet As Excel.Worksheet
        
        Dim ExcelFileName As String
        ExcelFileName = "g:\a.xls"     'ExcelNameFile是从对话框中接受的,我这在做测试!
        
        Set rApp = CreateObject("Excel.Application")
        Set rBook = rApp.Workbooks.Open(ExcelFileName)
        Set rSheet = rBook.Worksheets(1)
        
        Dim s As String
        Dim t As String
        s = "195+000"      '查找的表中元素
        Dim i, j As Integer
        i = 0
        j = 0
        Do While 1
           Do Until j < 6
                If StrComp(Trim(rSheet.Cells(i, j).Value), s) = 0 Then   '找到字符串s后,查表格,推出程序
                    t = rSheet.Cells(i + 2, j).Value
                    MsgBox t
                    Exit Sub
                End If
                j = j + 1
            Loop
            i = i + 1
        Loop
    请大家再提意见!!先谢了!
      

  6.   

    sfile 为文件路径
    把一个EXCEL文件读入数组
    Public Sub ReadToArray(sFile As String)
        
        If sFile = "" Then Exit Sub    Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim iRow As Integer
        Dim file As Object
        
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set xlApp = CreateObject("Excel.Application")
        
        xlApp.Workbooks.Open sFile
        
        Set xlBook = xlApp.Workbooks(1)
        xlApp.Workbooks(1).Activate
        xlApp.Range("A1").Select
        ActiveCell.CurrentRegion.Select
        
        iRow = ActiveCell.CurrentRegion.Rows.Count - 1
        
        '65为A的ascii码
        ReDim arrdata(0 To iRow, 65 To     ActiveCell.CurrentRegion.Columns.Count + 64)
        Dim i As Integer, iCol As Integer
        For i = 0 To iRow
            For iCol = 65 To ActiveCell.CurrentRegion.Columns.Count + 64
                arrdata(i, iCol) = xlBook.Worksheets(1).Range(Chr(iCol) & i + 1).Value
            Next iCol
        Next i
        
        xlBook.Close
        xlApp.Workbooks.Close
        Set xlApp = Nothing
    End Sub
    给分吧。100分哦
      

  7.   

    雨中散步老兄:
        我用不着把数据导入到数组中,我只需要从表格中的第一列找到给定数据,并把同一行第三列的数据读出,就行了。
        我的问题是明明有文件,却说找不到,错误提示如下:
       Run-time error "1004"
       无法找到“g:\a.xls",请检查文件名的拼写,并检查文件位置是否正确。
     各位大侠,帮帮忙吧!
      

  8.   

    你试试换个文件,比如“g:\b.xls”,如果还有问题,可能是你的冒号用了中文状态下的,你试试看