0

ExcelファイルのEOFを見つけるためにvb6でコードを書くにはどうすればよいですか?

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 に答える