Note: The other languages of the website are Google-translated. Back to English

Как быстро импортировать несколько файлов csv / text / xml в Excel?

В Excel вам, возможно, приходилось сохранять книгу как файл csv, текстовый файл или файл xml, но пробовали ли вы когда-нибудь импортировать несколько файлов csv / text / xml из папки в книгу или рабочий лист? В этой статье я расскажу о некоторых методах их быстрого пакетного импорта.

Импортируйте несколько текстовых файлов из папки на каждый лист книги с помощью VBA

Импортируйте несколько файлов CSV из папки на один лист с помощью VBA

Импортируйте несколько файлов xml из папки на один лист с помощью VBA

Импортируйте или объедините несколько файлов xml / csv в лист или книгу с помощью Kutools for Excel хорошая идея3

Экспортируйте каждый лист как csv / text / pdf в папку с помощью Kutools for Excelхорошая идея3


Чтобы импортировать текстовые файлы из папки в книгу, вы можете использовать приведенный ниже 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 ключа или Run кнопку, чтобы запустить VBA, и выберите папку, из которой вы хотите импортировать текстовые файлы, в появившемся диалоговом окне. Смотрите скриншот:

doc импортировать несколько текстов csv xml 1

4. И нажмите OK, и каждый текстовый файл в выбранной папке был импортирован на один рабочий лист активной книги. Смотрите скриншот:

doc импортировать несколько текстов csv xml 2doc импортировать несколько текстов csv xml 3

Легко объединяйте несколько листов / книгу в один лист или рабочую книгу

Объединение нескольких листов или книг в один лист или книгу может быть удобно в Excel, но с Сочетать Функция в Kutools for Excel, вы можете объединить десятки листов / книг в один лист или книгу, а также вы можете объединить листы в один только несколькими щелчками мыши.  Нажмите для полнофункционального 30 дней бесплатного пробного периода!
объединить листы
 
Kutools for Excel: с более чем удобными надстройками Excel 300, которые можно попробовать бесплатно без ограничений в 30 дней.

Чтобы импортировать все файлы 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 ключ или щелкните Run кнопку для выполнения VBA, и появится диалоговое окно для выбора папки, из которой вы хотите импортировать все CSV-файлы. Смотрите скриншот:

doc импортировать несколько текстов csv xml 4

4. Нажмите OK, и появится диалоговое окно, напоминающее вам, если очистить содержимое активного листа перед импортом, здесь я нажимаю Да. Смотрите скриншот:

doc импортировать несколько текстов csv xml 5

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

doc импортировать несколько текстов csv xml 6doc импортировать несколько текстов csv xml 7

Наконечник: Если вы хотите разместить файлы 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 

doc импортировать несколько текстов csv xml 8


Если вы хотите импортировать все файлы 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. Нажмите Run или F5 ключ для запуска VBA и выберите папку в диалоговом окне, см. снимок экрана:

doc импортировать несколько текстов csv xml 9

4. Нажмите OK, и все файлы XML в выбранной папке будут импортированы в активный лист.


Если вы не знакомы с VBA, беспокойтесь, здесь я представляю удобный инструмент - Kutools for Excel для вас. С его мощным Сочетать утилиту, вы можете быстро объединить несколько файлов xml или csv в одну книгу или один лист Excel.

Kutools for Excel, с более чем 300 удобные функции, облегчающие вашу работу. 

После установки Kutools for Excel, сделайте следующее:(Бесплатная загрузка Kutools for Excel прямо сейчас!)

1. Active Excel и щелкните Кутулс Плюс > Сочетать. Смотрите скриншот :
док комбинировать 1

2. А в шаг 1 комбинирования В диалоговом окне выберите нужный вариант разделения. Смотрите скриншот:
док комбинировать 2

3. Нажмите Далее идти на шаг 2 комбинирования, нажмите Добавить добавлять файлы из разных папок или файлы из одной папки в Workbook список, а также вы можете указать листы, которые хотите объединить из Рабочий лист список правого раздела. Смотрите скриншот:
doc kutools объединить листы 3

4. Нажмите Далее до последнего шага Сочетать, и вы можете указать параметры комбинирования.
doc kutools объединить листы 4

5. Нажмите Завершить, появится диалоговое окно с напоминанием о выборе места для сохранения нового комбинированного результата. Смотрите скриншот:
док комбинировать 5

6. Нажмите Сохраните. Все добавляемые листы были объединены в новый единый лист.
док комбинировать 6

Наконечник: Работы С Нами Сочетать, вы также можете объединить несколько Файлы CSV сформировать несколько папок или одну папку в один лист или книгу.


Если вы хотите экспортировать каждый лист как файл csv / text / pdf в папку, Kutools for ExcelАвтора Разделить книгу Утилита может оказать вам услугу.

После бесплатная установка Kutools for Excel, сделайте следующее:

1. Включите книгу, листы которой вы хотите экспортировать, и нажмите Кутулс Плюс > Workbook > Разделить книгу. Смотрите скриншот:

doc импортировать несколько текстов csv xml 10

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

doc импортировать несколько текстов csv xml 11

3. Нажмите Трещина и выберите папку для сохранения разделенных файлов в Найдите папку диалог, см. снимок экрана:

doc импортировать несколько текстов csv xml 12

4. Нажмите OK, теперь все отмеченные листы экспортируются как новый формат файла в выбранную папку.


Относительные статьи:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (36)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, большое спасибо за эти примеры кода! Первый (VBA: импортировать все текстовые файлы из папки в книгу) — это почти то, что мне нужно. Однако я хотел бы выбрать, какие файлы импортировать, а не автоматически импортировать все текстовые файлы в любой заданной папке. Я также хотел бы, чтобы существующее содержимое моих целевых листов было перезаписано содержимым текстовых файлов. (В приведенном выше коде существующее содержимое смещается вправо, а не заменяется.) Как мне это сделать? Заранее спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, я хотел бы понять код VBA для «Импорт нескольких файлов Xml из папки в один лист с помощью VBA». 1. Почему нужны 2 книги вместо 1? 2. Загрузка многих XML-файлов в Excel занимает некоторое время, так что есть ли более эффективный код? Поскольку я понимаю, что при запуске вашего кода создается много книг VBA, что вызывает замедление. Я был бы очень признателен, если бы вы могли помочь мне понять!
Этот комментарий был сведен к минимуму модератором на сайте
Извините, я не понял ваш первый вопрос, а про второй, более эффективный код, я не нашел, если вы знаете, пожалуйста, оставьте мне примечание, спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, я хотел бы понять код VBA для «Импорт нескольких файлов .txt из папки на один лист с помощью VBA» по следующей доступной строке (не по горизонтали). Помогите, срочно
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, если вы хотите импортировать все текстовые файлы из одной папки на один лист, вы можете использовать приведенный выше код vba, чтобы сначала импортировать текстовые файлы в книгу, а затем применить Kutools for Excel Функция «Объединить рабочие листы», чтобы объединить все листы книги в один лист, затем файлы txt на листе. Надеюсь, это поможет вам.
Этот комментарий был сведен к минимуму модератором на сайте
Проблема в том, что ни команда VBA, ни Kutools не позволяют импортировать файлы csv с форматированием символьного кода. Предзагрузка западная. Мне нужно импортировать все файлы csv как unicode-8
Этот комментарий был сведен к минимуму модератором на сайте
код конвертации из txt файлов у меня не работал.
Этот комментарий был сведен к минимуму модератором на сайте
Извините, эта статья не работает для вас. Не могли бы вы описать вашу проблему? Что происходит во время выполнения кода? А по какой системе вы работаете?
Этот комментарий был сведен к минимуму модератором на сайте
Привет! Код «Импорт CSV-файлов из папки на один лист» у меня работает! Но этот код не работает для пустого файла .txt. Есть ли способ сохранить пустые файлы?
Этот комментарий был сведен к минимуму модератором на сайте
Извините, я не знаю, зачем импортировать пустой файл txt.~Просто вставьте пустые строки, чтобы разделить содержимое.
Этот комментарий был сведен к минимуму модератором на сайте
Майк: "код конвертации из txt файлов у меня не сработал."

У меня была та же проблема. Макрос выдает ошибку, если у вас больше текстовых файлов для открытия, чем рабочих листов в вашей книге (по умолчанию 3).
Я исправил это, добавив следующее непосредственно перед выходом из цикла, чтобы макрос создавал новый лист после остальных
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
Этот комментарий был сведен к минимуму модератором на сайте
Чад, это отлично сработало для меня, чтобы импортировать несколько текстовых файлов. Спасибо.

Знаете ли вы, есть ли способ вытащить имена файлов? Я хочу, чтобы имена текстовых файлов были скопированы на вкладки каждого листа Excel.
Этот комментарий был сведен к минимуму модератором на сайте
Совершенно потрясающе! Попробовал открыть все CSV-файлы на одном листе, и это сработало прекрасно. Большое спасибо, правда!
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, я попытался запустить код для .xml, но он не работал, так как я получил сообщение «нет файлов xml». Как это исправить?
Этот комментарий был сведен к минимуму модератором на сайте
Появится сообщение «нет файлов xml», пока выбранная папка не содержит файлов xml. Вы можете выбрать нужную папку, содержащую xml-файлы, в диалоговом окне всплывающих окон после запуска кода для их импорта на активный лист.
Этот комментарий был сведен к минимуму модератором на сайте
Это сработало! Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
привет, сайа мау таня кало импорт txt файл ке сату лист гимана я?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, Рэнди, вы хотите импортировать все тексты на один лист или каждый текст на каждый лист?
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть код для импорта txt на листы, каждый txt на каждый лист, но я хочу, чтобы каждый txt был импортирован с его именем на лист, я имею в виду переименовать каждый импортированный лист с именем txt, прикрепленным к файлу кода. Я хочу отредактировать это файл для добавления кода для переименования листов с именем txts ... спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть код для импорта txt на листы, каждый txt на каждый лист, но я хочу, чтобы каждый txt был импортирован с его именем на лист, я имею в виду переименовывать каждый импортированный лист с именем txt, прикрепленным к файлу кода .. спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Рами, Захран, вы можете попробовать приведенный ниже код, который может импортировать текстовые файлы и переименовывать имя листа в имя текстового файла.
Подпрограмма LoadPipeDelimitedFiles()
'ОбновитьExtendoffice20180925
Dim xStrPath как строка
Dim xFileDialog как FileDialog
Развернуть xFile как строку
Dim xCount As Long
Dim xWS как рабочий лист

При ошибке Перейти к ErrHandler
Установите xFileDialog = Application.FileDialog (msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = Ложь
xFileDialog.title = "Выберите папку [Kutools для Excel]"
Если xFileDialog.Show = -1 Тогда
xStrPath = xFileDialog.SelectedItems(1)
End If
Если xStrPath = "", то выйдите из Sub
Приложение.ScreenUpdating = False
xFile = Dir(xStrPath & "\*.txt")
Делать, пока xFile <> ""
xCount = xCount + 1
Установите xWS = Листы (xCount)
xWS.Select
xWS.Name = "ТЕКСТ" & Left(xFile, Len(xFile) - 4)
С помощью ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Имя = "а" и xCount
.Имена полей = Истина
.RowNumbers = Ложь
.FillAdjacentFormulas = Ложь
.PreserveFormatting = Истина
.Рефрешонфилеопен = ложь
.RefreshStyle = кслинсертделетселлс
.SavePassword = Ложь
.СохранитьДанные = Истина
.AdjustColumnWidth = Истина
.RefreshPeriod = 0
.TextFilePromptOnRefresh = Ложь
.ТекстФайлПлатформ = 437
.TextFileStartRow = 1
.TextFileParseType = кслделимитед
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = Ложь
.TextFileTabDelimiter = Ложь
.TextFileSemicolonDelimiter = Ложь
.TextFileCommaDelimiter = Ложь
.TextFileSpaceDelimiter = Ложь
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Массив (1, 1, 1)
.TextFileTrailingMinusNumbers = Истина
.Обновить BackgroundQuery:=False
xФайл = Каталог
Конец с
Петля
Application.ScreenUpdating = True
Exit Sub
Обработчик ошибок:
MsgBox «нет файлов txt», «Kutools for Excel»
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Привет! Я использовал код для объединения нескольких файлов XML в один, но, к сожалению, столбцы перепутались. Все 5 объединяемых файлов имели одинаковый формат. Есть ли способ исправить это? Мне также было интересно, есть ли способ избавиться от заголовков, которые дублируются при объединении файлов. Благодарю вас!
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо. Этот сайт очень помог. У меня есть одна проблема, которую я не могу понять. Я пытаюсь импортировать несколько файлов csv в отдельные листы excel в excel и переименовывать каждый лист после имени файла файла csv. Я знаю, что это было описано ниже для файла txt, но я работаю с файлами csv. Заранее спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Привет. Я использую импорт всех CSV-файлов в один файл, указанный выше. «Импорт нескольких CSV-файлов из папки в один лист с помощью VBA» — я хотел бы определить папку, из которой он собирает данные, без необходимости выбирать вручную Это. Можно ли это сделать? спасибо - ув.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Скотт В., я нашел код VBA, который может тебе помочь.
Вариант Явный

Sub ImportCSVsWithReference()
'Автор: Джерри Бокер
'Дата: 10
'Резюме: Импортируйте все файлы CSV из папки в один лист
' добавление поля в столбец A со списком имен CSV-файлов

Dim wbCSV как рабочая книга
Dim wsMstr As Worksheet: Установите wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = "C:\Users\DT168\Desktop\New folder\" 'путь к файлам CSV, включая последний \
Dim fCSV как строка

If MsgBox("Очистить существующий лист перед импортом?", vbYesNo, "Очистить?") _
= vbYes Затем wsMstr.UsedRange.Clear

Application.ScreenUpdating = False 'макрос ускорения

fCSV = Dir(fPath & "*.csv") 'запустить список файлов CSV

Делать, пока Len(fCSV) > 0
'открыть файл CSV
Установите wbCSV = Workbooks.Open (fPath и fCSV)
'вставьте столбец A и добавьте имя CSV
Столбцы(1).Insert xlShiftToRight
Столбцы(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'скопировать дату в мастер-лист и закрыть исходный файл
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Close Ложь
'готов следующий CSV
fCSV = Направление
Петля

Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Как устранить повторяющийся заголовок и столбец имени файла CSV. Пожалуйста, помогите... Я просмотрел несколько статей, но, к сожалению, все они дают одинаковый результат.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте. Я использовал ваши коды VBA для извлечения данных из нескольких файлов CSV в файл Excel (код на этой странице) и преобразования файлов csv в файлы Excel (этот: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), с отличными результатами. Они помогли мне сэкономить много времени.

Однако я заметил общую проблему с обоими этими типами кодов. Чтобы уточнить, моя система настроена на использование европейских стандартов для дат, в то время как некоторые файлы CSV, которые я получил для своей работы, содержат даты в стандартах США. Первая проблема заключается в том, что когда я извлекаю или конвертирую данные из CSV-файла, содержащего даты в формате США, все эти даты переворачиваются (в соответствии со стандартами ЕС, используемыми в моей системе). Это здорово, но это также вызвало у меня проблемы, так как я не знал, что коды изменят даты для меня, поэтому я пошел дальше и сделал то же самое снова. Вторая проблема заключается в том, что для файлов CSV, которые уже содержат даты в том же формате, что и в моей системе (стандарты ЕС), только неоднозначные даты меняются местами (например, 04 - 05), а те, которые слишком очевидны, остаются без изменений (например, 2019).

То, что я хотел бы, чтобы коды делали, это то же самое, что и здесь, только то, что они должны копировать и вставлять данные (особенно даты) в точных форматах, используемых в исходных файлах. Это поможет избежать возможных недоразумений и ошибок. Я хотел бы изучить VBA, чтобы когда-нибудь написать свои собственные коды, но пока я даже не могу изменить части существующих кодов в соответствии со своими потребностями. Так что, если вы можете помочь, пожалуйста, скажите мне, где я должен разместить модифицированные коды (которые вы придумали) к существующим кодам. Я ценю все отзывы и поддержку, которые я могу получить. Спасибо вам всем!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Маршалл, в методе Workbooks.Open добавьте параметр Local:=True.

т.е.
Установите xWb = Workbooks.Open (xStrPath & "\" & xFile, Local: = True)
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо, Роберт. Извините, что не мог ответить вам раньше. Я не получил никакого уведомления до сих пор. Я попробую это и вернусь к вам позже, чтобы сообщить, работает ли это.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Роберт,
Это снова я. Мне потребовалось некоторое время, чтобы выяснить, к какой части кода следует добавить часть «Local: True». Результат оказался отличным, так как даты больше не меняются местами. Благодарю вас!
Для тех, у кого такая же проблема, просто измените эту строку:
Установите xWb = Workbooks.OpenXML (xStrPath & "\" & xFile)

К этому:
Установите xWb = Workbooks.Open (xStrPath & "\" & xFile, Local: = True)
Этот комментарий был сведен к минимуму модератором на сайте
Привет, есть ли способ импортировать несколько файлов csv с точкой с запятой в качестве разделителя? Благодарю вас!
P.S. Хорошая статья!
Этот комментарий был сведен к минимуму модератором на сайте
Привет команда

Я использую код для импорта нескольких XML-файлов в один лист с помощью VBA, однако проблема, с которой я сталкиваюсь, заключается в том, что когда количество строк достигает примерно 650000, тогда он не обрабатывает остальные xml-файлы в папке и выдает ошибку, что нет xml-файлов . Нужна ваша поддержка, чтобы увеличить этот счет.
Этот комментарий был сведен к минимуму модератором на сайте
Привет эксперты

Я использую приведенный выше код для импорта нескольких файлов xml в 1 рабочий лист с помощью VBA, однако проблема, с которой я сталкиваюсь, заключается в том, что когда количество строк достигает 650000 на листе, тогда этот код не обрабатывает остальные файлы xml в папке. Выдает ошибку "нет файлов.xml". Требуется ваша любезная поддержка
Этот комментарий был сведен к минимуму модератором на сайте
Привет. Инструкции по импорту нескольких XML-файлов в одну вкладку документа Excel работают, но мне было интересно, как заставить их выровнять столбцы. Мои XML-файлы не имеют одинаковых тегов. Они настроены таким образом, что если в xml не было данных для некоторых заголовков (тегов), то заголовок отсутствует в этом xml. Есть ли способ импортировать xml, чтобы одни и те же заголовки из каждого xml и связанные данные попадали в один и тот же столбец excel?
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL