cells(i,j) i,j应该从1开始。
从你的代码来看,i,j都没有显式设置下限,而是以当前单元格是否为空来判断,这对EXCEL应用来说不是个好习惯,除非你没有别的办法判断。
需要加上错误处理代码,并释放资源
从你的代码来看,i,j都没有显式设置下限,而是以当前单元格是否为空来判断,这对EXCEL应用来说不是个好习惯,除非你没有别的办法判断。
需要加上错误处理代码,并释放资源
很抱歉,我忘记写了:
程序的错误是找不到("g:\a.xls")要打开的文件
清在指点!
错误还是打不开文件 "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
请大家再提意见!!先谢了!
把一个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分哦
我用不着把数据导入到数组中,我只需要从表格中的第一列找到给定数据,并把同一行第三列的数据读出,就行了。
我的问题是明明有文件,却说找不到,错误提示如下:
Run-time error "1004"
无法找到“g:\a.xls",请检查文件名的拼写,并检查文件位置是否正确。
各位大侠,帮帮忙吧!