Импортировать идентичные файлы excel в доступ с несколькими листами

Итак, я пытаюсь найти способы облегчить рекомбинацию данных на листах Excel с помощью доступа. То, что я пытаюсь сделать, это взять несколько файлов excel, которые все одинаково отформатированы и объединены в смежную таблицу. Прямо сейчас у меня есть функция VBA, которая позволит мне настроить таргетинг на один рабочий лист excel через каталог файлов excel и объединить их в одну таблицу доступа. Мой вопрос: как я могу сделать то же самое, но для КАЖДОГО рабочего листа в каталоге одним выстрелом вместо запуска и изменения кода для каждого рабочего листа.

TL; DR У вас есть 100 файлов excel, каждая из которых содержит 7 листов. Форматирование идентично, но данные разные. Как я могу взять все 100 файлов и объединить их таблицы в 7 соответствующих таблиц MS Access?

****** ВОПРОС РЕШЕН. РАБОЧИЙ КОД КАК ПОСЛЕДУЮЩИЕ ПРОБЛЕМЫ *******

Модуль 1 с именем SingleModule:

Option Compare Database Public Function importExcelSheets(Directory As String, TableName As String, WkShtName As String) As Long On Error Resume Next Dim strDir As String Dim strFile As String Dim I As Long I = 0 If Left(Directory, 1) <> "\" Then strDir = Directory & "\" Else strDir = Directory End If strFile = Dir(strDir & "*.XLSX") While strFile <> "" I = I + 1 strFile = strDir & strFile Debug.Print "importing " & strFile DoCmd.TransferSpreadsheet acImport, , TableName, strFile, True, WkShtName strFile = Dir() Wend importExcelSheets = I End Function 

Модуль 2 с именем MultipleModule:

 Public Function importMultipleExcelFiles(Directory As String) As Long For x = 1 To 7 Dim TableName As String Dim WkShtName As String TableName = Choose(x, "Table1", "Table2", "Table3", "Table4") WkShtName = Choose(x, "Table1!", "Table2!", "Table3!", "Table4!") Call SingleModule.importExcelSheets(Directory, TableName, WkShtName) Next x End Function 

Используйте следующую команду в окне Immediate для выполнения (убедитесь, что вы изменили путь к файлу):

 ? importMultipleExcelFiles("C:\Excel File Directory") 

ПРИМЕЧАНИЕ:

Вы можете настроить таргетинг на один рабочий лист, используя следующую команду в SingleModule в окне Immediate:

 ? importExcelSheets("C:\FilePath", "TableName", "WkShtName!") 

Извините, я не видел, как ваше TableName входило в процедуру. Используйте FOR-NEXT с функцией CHOOSE, когда вы вызываете функцию importExcelSheets.

 for x= 1 to 7 TableName = choose(x, "Table1", "Table2"...) WkShtName = choose(x, "ContactDetails!", ...) importExcelSheets Dir, TableName, WkshtName next x 
  • Как я могу отметить флажок Excel из VBA Access
  • Скопировать строки из таблицы доступа в Excel
  • Access / Excel VBA - удаление предупреждений и сообщений на дисплее
  • Попытка использования функции Excel LinEst из Access с помощью VBA
  • Импортировать файл данных в Excel или доступ
  • получение данных из Access с помощью vba с использованием данных excel
  • Обновление данных доступа через Excel
  • Добавить в Excel из Access с помощью VBA
  • доступ vba добавить кнопку excel с макросом vba
  • Думая о переходе SQLIte over Access для небольшого офисного приложения Excel
  • заменить столбец в доступе к Microsoft для значений из столбца excel с помощью python
  • Давайте будем гением компьютера.