如何在vb6中编写代码以找到Excel文件的EOF?
Dim excelApp as Excel.Application
Dim excelWB as Excel.Workbook
Set excelApp = New Excel.Application
Set excelWB = excelApp.Workbooks.Open("D:\Book1.xls")
Dim xlsRow as Long
Dim EOF as Boolean
xlsRow = 1
Do While (EOF = False)
If (excelWB.Sheets("Sheet1").Cells(xlsRow, 1).Value = "") Then
EOF = True
Else
xlsRow = xlsRow + 1
End If
Loop
此代码有效,但是唯一的问题是仅将检查第1列,而其他问题则不会。谁能帮助我改善代码以检查Excel单元格的所有行和列?
我将您的示例加载到VB6中,但是由于我没有获得完整的智能感知,我认为我没有正确的引用。
但是,我建议您不要使用Excel应用程序对象,因为它们仅用于访问Excel文件会很慢。
我建议使用ADODB。
例如连接到电子表格(sFilename
)
Set cnExcel = New ADODB.Connection
cnExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sFilename & ";" & _
"Extended Properties=""Excel 8.0;IMEX=1;HDR=NO"""
然后通读它。 ADODB为您完成EOF工作。我在这里显示第0行和第1行
rs.Open "select * from " & sSheetName, cnExcel, adOpenDynamic, adLockOptimistic
While Not rs.EOF
debug.print rs(0)
debug.print rs(1)
rs.MoveNext
Wend
这只是一种简单的尝试,但是网上有很多资源可以做到这一点,而且比使用excel对象要快得多!上面是从我自己的代码中剪切并粘贴的,所以我知道它可以工作!