0

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

4

1 回答 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 对象快得多!以上是从我自己的代码中剪切和粘贴的,所以我知道它有效!

于 2010-03-16T08:59:58.217 回答