Импорт листа Excel в Access с использованием VBA - PullRequest
6 голосов
/ 13 сентября 2011

Я пытаюсь импортировать электронную таблицу Excel в Access, используя простой код VBA. Проблема, с которой я столкнулся, состоит в том, что в файле 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"

1 Ответ

11 голосов
/ 13 сентября 2011

Передайте имя листа с параметром Range метода DoCmd.TransferSpreadsheet .См. Поле «Рабочие листы в параметре диапазона» в нижней части этой страницы.

Этот код импортируется из листа с именем «temp» в рабочую книгу с именем «temp.xls» и сохраняет данные втаблица с именем "tblFromExcel".

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