0

こんにちは、ワークブックのスキャンで問題が発生しました。2 つのワークシートをスキャンする必要があります。最後に行ったのは、最初のワークシートをスキャンしたことですが、2 番目のワークシートはまだ含まれていません。ここに私のサンプルコードがあります:

Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
xlApp = New Excel.ApplicationClass
reportpath = filename
xlWorkBook = xlApp.Workbooks.Open(reportpath)
xlWorkSheet = xlWorkBook.Worksheets("Sheet1")
xlWorkSheet = xlWorkBook.Worksheets("Sheet2")
4

2 に答える 2

0

コードを次のように変更します。

Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbookv
Dim xlWorkSheet1 As Excel.Worksheet
Dim xlWorkSheet2 As Excel.Worksheet
xlApp = New Excel.ApplicationClass
reportpath = filename
xlWorkBook = xlApp.Workbooks.Open(reportpath)
xlWorkSheet1 = xlWorkBook.Worksheets("Sheet1")
xlWorkSheet2 = xlWorkBook.Worksheets("Sheet2")

For i = 1 To 10
    MsgBox(xlWorkSheet1.Range("A" & i))
Next i

このコードを使用すると、 の列の最初の 10 行を「スキャン」していAますSheet1

xlWorkSheet2「スキャン」したい場合も同じことを行いますSheet2

于 2013-02-05T07:40:00.107 に答える
0

このチュートリアルをチェックして、Excel からデータを取得し、 DataTable で処理します。この方法は、次の方法よりも高速です。

xlApp を Excel.Application として薄暗くする

Dim xlWorkBook As Excel.Workbook *...*

または私の方法を確認してください:

Dim _con As OleDbConnection

Dim _cmd As New OleDbCommand

    Dim DtSet As DataSet

    Dim _tabExtrato as new DataTable

    Dim _adaptCommand As OleDbDataAdapter

Private Sub _readXLS (ByVal TXT を TextBox として、ByVal _linkFILE を文字列として、ByVal _folha を文字列として、ByVal DGV を DataGridView として)

    _con = New OleDbConnection _
    ("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & _linkFILE & "'; Extended Properties=Excel 8.0;")

    Dim trimTxt As String = "SELECT * FROM "

    '_folha = the sheet
    Dim _sqlQuery As String = " " & trimTxt & " [" & _folha & "$] "

    _adaptCommand = New OleDbDataAdapter(_sqlQuery, _con)

    _adaptCommand.TableMappings.Add("Table", "DSTable")

    DtSet = New DataSet

    '_adaptCommand.Fill(DtSet)
    _adaptCommand.Fill(_tabExtrato)

    DGV.DataSource = _tabExtrato

    _con.Close()

End Sub
于 2013-02-08T14:08:56.273 に答える