Как быстро выполнить пакетный импорт нескольких CSV-, текстовых или XML-файлов в Excel?
В Excel Вы, возможно, сохраняли книгу как файл csv, Текстовый файл или xml, но пробовали ли Вы импортировать сразу несколько файлов csv/текст/xml из папки в одну книгу или на один лист? В этой статье я расскажу о нескольких способах быстрого пакетного импорта.
Импорт нескольких Текстовый файл из папки на отдельные листы книги с помощью VBA
Чтобы импортировать текстовый файл из папки в книгу, воспользуйтесь приведённым ниже кодом VBA.
1. Откройте пустую книгу и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставка > Модуль и вставьте код VBA в окно Модуль.
VBA: Импорт всех Текстовый файл из папки в книгу
Sub LoadPipeDelimitedFiles()
'UpdatebyKutoolsforExcel20151214
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\*.txt")
Do While xFile <> ""
xCount = xCount + 1
Sheets(xCount).Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Name = "a" & xCount
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
xFile = Dir
End With
Loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "no files txt", , "Kutools for Excel"
End Sub 3. Нажмите клавишу F5 или кнопку Выполнить, чтобы запустить код VBA. В появившемся диалоговом окне выберите папку — «Выберите папку, из которой нужно импортировать текстовый файл». См. снимок экрана:

4. Нажмите кнопку OK, и каждый текстовый файл из выбранной папки будет импортирован на отдельный лист в текущей книге. См. снимок экрана:



Раскройте магию Excel с помощью KUTOOLS AI
- Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
- Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
- Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
- Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
- Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Импорт нескольких файлов csv из папки на один лист с помощью VBA
Чтобы импортировать все CSV-файлы из папки на один лист, воспользуйтесь приведённым ниже кодом VBA.
1. Откройте пустой лист и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставка > Модуль и вставьте приведённый ниже код VBA в новое окно Модуль.
VBA: Импорт файлов csv из папки на один лист
Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
Dim xSht As Worksheet
Dim xWb As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Set xSht = ThisWorkbook.ActiveSheet
If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\" & "*.csv")
Do While xFile <> ""
Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
Columns(1).Insert xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
xWb.Close False
xFile = Dir
Loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "no files csv", , "Kutools for Excel"
End Sub 3. Нажмите клавишу F5 или кнопку Выполнить, чтобы запустить код VBA. В появившемся диалоговом окне укажите папку: выберите папку, из которой нужно импортировать все файлы CSV. См. снимок экрана:

4. Нажмите кнопку OK, после чего появится диалоговое окно с запросом на очистку содержимого активного листа перед импортом. Я выбираю Да. См. снимок экрана:

После нажатия кнопки Да все файлы CSV из выбранной папки будут импортированы на текущий лист, а данные разместятся, начиная со столбца A, и далее вправо. См. снимок экрана:


Совет: Если вы хотите разместить данные из CSV-файлов горизонтально на одном листе, воспользуйтесь приведённым ниже кодом VBA.
Sub ImportCSVsWithReferenceI()
'UpdatebyKutoolsforExcel20151214
Dim xSht As Worksheet
Dim xWb As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Set xSht = ThisWorkbook.ActiveSheet
If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then
xSht.UsedRange.Clear
xCount = 1
Else
xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
End If
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\" & "*.csv")
Do While xFile <> ""
Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
Rows(1).Insert xlShiftDown
Range("A1") = ActiveSheet.Name
ActiveSheet.UsedRange.Copy xSht.Cells(1, xCount)
xWb.Close False
xFile = Dir
xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
Loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "no files csv", , "Kutools for Excel"
End Sub 
Импорт нескольких файлов xml из папки на один лист с помощью VBA
Если вы хотите импортировать все XML-файлы из папки на один лист, воспользуйтесь приведённым ниже кодом VBA.
1. Выберите пустой лист, на который нужно импортировать данные, и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставка>Модульи вставьте код VBA в окно Модуль.
VBA: Импорт XML-файлов из папки на лист
Sub From_XML_To_XL()
'UpdatebyKutoolsforExcel20151214
Dim xWb As Workbook
Dim xSWb As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Application.ScreenUpdating = False
Set xSWb = ThisWorkbook
xCount = 1
xFile = Dir(xStrPath & "\*.xml")
Do While xFile <> ""
Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
xWb.Sheets(1).UsedRange.Copy xSWb.Sheets(1).Cells(xCount, 1)
xWb.Close False
xCount = xSWb.Sheets(1).UsedRange.Rows.Count + 2
xFile = Dir()
Loop
Application.ScreenUpdating = True
xSWb.Save
Exit Sub
ErrHandler:
MsgBox "no files xml", , "Kutools for Excel"
End Sub 3. Нажмите кнопку Выполнить или клавишу F5, чтобы запустить код VBA, и в появившемся диалоговом окне выберите нужную папку. См. снимок экрана:

4. Нажмите кнопку OK, и все файлы XML из выбранной папки будут импортированы на текущий лист книги.
Импорт или объединение нескольких файлов xml/csv на один лист или в одну книгу с помощью Kutools для Excel
Если вы не знакомы с VBA, не переживайте — рекомендую вам удобный инструмент: Kutools для Excel. Благодаря его мощной функции Объединить вы сможете быстро объединить несколько файлов XML или CSV в одну книгу Excel или на один лист.
После установки Kutools для Excel выполните следующие действия:(Бесплатно скачать Kutools для Excel прямо сейчас!)
1. Активируйте Excel и нажмите KUTOOLS PLUS > Объединить. См. снимок экрана:
2. На шаге 1 диалогового окна «Объединить» выберите нужный вариант разделения. См. снимок экрана:
3. Нажмите кнопку Далее, чтобы перейти к шагу 2 функции «Объединить». Затем нажмите кнопку Добавить, чтобы выбрать файлы из разных папок или все файлы из одной папки и добавить их в список Книга. Также укажите нужные листы в списке Лист в правой части окна. См. снимок экрана:
4. Нажмите кнопку Далее, чтобы перейти к шагу Последняя ячейка функции «Объединить», где можно указать параметры объединения.
5. Нажмите кнопку Готово, после чего откроется диалоговое окно с запросом на выбор места для сохранения нового объединённого результата. См. снимок экрана:
6. Нажмите кнопку Сохранить. Все добавленные листы объединятся в один новый лист.
Совет: С помощью функции «Объединить» вы также можете объединить несколько файлов CSV из разных папок или одной папки в одну книгу или на один лист.
Экспорт каждого листа в формат csv/текст/pdf в папку с помощью Kutools для Excel
Если вы хотите экспортировать каждый лист в формат CSV, текст или PDF в отдельную папку, функция Разделить книгу из Kutools для Excel поможет вам в этом.
После бесплатной загрузки и установкиKutools для Excel выполните следующие действия:
1. Откройте книгу, листы которой нужно экспортировать, и нажмите KUTOOLS PLUS > Книга > Разделить книгу. См. снимок экрана:

2. В диалоговом окне Разделить книгу отметьте имена листов, которые нужно экспортировать (по умолчанию отмечены все листы), установите флажок Указать формат сохранения и выберите нужный формат из раскрывающегося списка «Тип файла» ниже. См. снимок экрана:

3. Нажмите кнопку Разделить и укажите папку для сохранения разделённых файлов в диалоговом окне «Выбор папки». См. снимок экрана:

4. Нажмите кнопку OK, после чего все отмеченные листы будут экспортированы в выбранную папку как новые файлы указанного типа.
Связанные статьи:
- Как преобразовать гиперссылку в обычный текст в Excel?
- Как преобразовать десятичное число в двоичное, восьмеричное или шестнадцатеричное — и наоборот — в Excel?
- Как вставить актуальный курс валюты в Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек