VB6中Excel电子表格的EOF

问题描述 投票:0回答:1

如何在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单元格的所有行和列?

excel vb6 eof
1个回答
1
投票

我将您的示例加载到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对象要快得多!上面是从我自己的代码中剪切并粘贴的,所以我知道它可以工作!

© www.soinside.com 2019 - 2024. All rights reserved.