web-dev-qa-db-ja.com

VBAを使用してExcelワークシートをAccessにインポートする

簡単なVBAコードを使用してExcelスプレッドシートをAccessにインポートしようとしています。私が遭遇した問題は、Excelファイルに2つのワークシートがあり、2番目のワークシートをインポートする必要があることです。 VBAコードで必要なワークシートを指定することは可能ですか?

Private Sub Command0_Click()

Dim dlg As FileDialog
Set dlg = Application.FileDialog(msoFileDialogFilePicker)

With dlg
.Title = "Select the Excel file to import"
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Excel Files", "*.xls", 1
.Filters.Add "All Files", "*.*", 2

If .Show = -1 Then
StrFileName = .SelectedItems(1)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "COR Daily", StrFileName, True
Else
Exit Sub
End If
End With

End Sub

StrFileNameを'StrFileName'&'.Worksheetname'に設定する必要がありますか?それはそのための適切な命名スキームですか?

何かのようなもの:

StrFileName = StrFileName & ".WorkSheetName"
6
Randal

DoCmd.TransferSpreadsheet Method のRangeパラメータを使用してシート名を渡します。そのページの下部にある「範囲パラメーターのワークシート」というタイトルのボックスを参照してください。

このコードは、「temp.xls」という名前のワークブックの「temp」という名前のシートからインポートし、「tblFromExcel」という名前のテーブルにデータを格納します。

Dim strXls As String
strXls = CurrentProject.Path & Chr(92) & "temp.xls"
DoCmd.TransferSpreadsheet acImport, , "tblFromExcel", _
    strXls, True, "temp!"
12
HansUp