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/текст/pdf до папки з Kutools for Excelгарна ідея3


Щоб імпортувати текстові файли з папки до книги, ви можете скористатися нижче VBA, щоб швидко обробити це.

1. Увімкніть порожню книгу та натисніть Alt + F11 клавіші, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. клацання Insert > Модуліта вставте 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, і виберіть діалогове вікно, в яке потрібно імпортувати текстові файли. Дивіться знімок екрана:

doc імпортувати кілька CSV-текст xml 1

4. І клацніть OK, а кожен текстовий файл у вибраній папці імпортовано на один аркуш активної книги. Дивіться знімок екрана:

doc імпортувати кілька CSV-текст xml 2doc імпортувати кілька CSV-текст xml 3

Легко об’єднайте кілька аркушів / робочу книгу в один аркуш або книгу

Об'єднання кількох аркушів або книг в один аркуш або книгу може бути непростим в Excel, але з Поєднувати функція в Kutools for Excel, ви можете об’єднати десятки аркушів/робочих книг в один аркуш або робочу книгу, а також ви можете об’єднати аркуші в один лише кількома клацаннями.  Натисніть для повнофункціонального 30 днів безкоштовної пробної версії!
комбінувати аркуші
 
Kutools for Excel: з більш ніж 300 зручними надбудовами Excel, які можна безкоштовно спробувати без обмежень 30 днів.

Щоб імпортувати всі файли csv з папки на один аркуш, ви можете використовувати код VBA нижче.

1. Увімкніть порожній аркуш і натисніть Alt + F11 клавіші, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. клацання Insert > Модулі, і вставте нижче 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. Дивіться знімок екрана:

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. клацання Insert > Модулі, вставте код 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 і виберіть папку в діалоговому вікні, що з’явиться, див. знімок екрана:

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. Активний Excel і натисніть Kutools Plus > Поєднувати. Див. Скріншот:
doc об'єднати 1

2. І в крок 1 Combine діалоговому вікні, виберіть один із варіантів розділення, як вам потрібно. Дивіться знімок екрана:
doc об'єднати 2

3. клацання Далі для переходу до крок 2 комбайна, Натисніть додавати щоб додати файли з різних папок або файли з однієї папки в робочий зошит списку, а також ви можете вказати аркуші, з яких ви хочете об'єднати Робочий аркуш список правого розділу. Дивіться знімок екрана:
doc kutools поєднують аркуші 3

4. клацання Далі до останнього кроку Поєднувати, і ви можете вказати параметри комбінування.
doc kutools поєднують аркуші 4

5. клацання обробка, спливає діалогове вікно, щоб нагадати вам про вибір місця для збереження нового комбінованого результату. Дивіться знімок екрана:
doc об'єднати 5

6. клацання зберегти. Усі додані аркуші об’єднані в новий єдиний аркуш.
doc об'єднати 6

Порада: з Поєднувати, Ви також можете поєднувати декілька Файли CSV формуйте декілька папок або одну папку на одному аркуші або в книзі.


Якщо ви хочете експортувати кожен аркуш як файл csv / text / pdf до папки, Kutools for ExcelАвтора Роздільна робоча книга утиліта може зробити для вас послугу.

після безкоштовна установка Kutools for Excel, будь ласка, виконайте наведені нижче дії:

1. Увімкніть книгу, для якої потрібно експортувати її аркуші, та натисніть Kutools Plus > робочий зошит > Роздільна робоча книга. Дивіться знімок екрана:

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, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 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.file~Просто вставте порожні рядки, щоб відокремити вміст.
Цей коментар був мінімізований модератором на сайті
Майк: "код для конвертації з 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, доданого файлу коду .. дякую
Цей коментар був мінімізований модератором на сайті
Привіт, Рамі, zahran, ви можете спробувати код нижче, який може імпортувати текстові файли та перейменувати ім’я аркуша на ім’я текстового файлу.
Sub LoadPipeDelimitedFiles()
'ОновленняExtendoffice20180925
Dim xStrPath як рядок
Dim xFileDialog як FileDialog
Dim xFile як рядок
Dim xCount As Long
Dim xWS як робочий лист

Помилка GoTo ErrHandler
Встановіть xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.title = "Виберіть папку [Kutools for Excel]"
Якщо xFileDialog.Show = -1 Тоді
xStrPath = xFileDialog.SelectedItems(1)
End If
Якщо xStrPath = "" Вийдіть із Sub
Application.ScreenUpdating = Невірний
xFile = Dir(xStrPath & "\*.txt")
Робити, поки xFile <> ""
xCount = xCount + 1
Встановити xWS = Sheets(xCount)
xWS.Вибрати
xWS.Name = "TEXT " & Left(xFile, Len(xFile) - 4)
За допомогою ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Name = "a" і xCount
.FieldNames = True
.RowNumbers = Неправда
.FillAdjacentFormulas = Неправда
.PreserveFormatting = True
.RefreshOnFileOpen = Неправда
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.Період оновлення = 0
.TextFilePromptOnRefresh = Неправда
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = Неправда
.TextFileSemicolonDelimiter = Неправда
.TextFileCommaDelimiter = Неправда
.TextFileSpaceDelimiter = Неправда
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Масив (1, 1, 1)
.TextFileTrailingMinusNumbers = Правда
.Refresh BackgroundQuery:=False
xFile = Dir
Кінець з
Петля
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "немає файлів txt", , "Kutools for Excel"
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт! Я використав код, щоб об’єднати декілька файлів XML в один, але, на жаль, стовпці зіпсувалися. Усі 5 файлів, які були об’єднані, мали однаковий формат. Чи можна якось це виправити? Мені також було цікаво, чи є спосіб позбутися заголовків, які дублюються під час об’єднання файлів. Дякую!
Цей коментар був мінімізований модератором на сайті
Дякую. Цей сайт дуже допоміг. У мене є одна проблема, яку я не можу зрозуміти. Я намагаюся імпортувати декілька файлів csv в окремі аркуші Excel в Excel і перейменувати кожен аркуш за ім’ям файлу csv. Я знаю, що це було описано нижче для файлу txt, але я працюю з файлами csv. Заздалегідь спасибі.
Цей коментар був мінімізований модератором на сайті
Привіт! Я використовую імпорт усіх файлів csv в один файл, наведений вище "Імпортувати кілька файлів Csv з папки на один аркуш за допомогою VBA" - я хотів би визначити папку, з якої будуть збиратися дані, без необхідності вибирати вручну це. Чи можна це зробити? дякую - SW.
Цей коментар був мінімізований модератором на сайті
Привіт, Скотт В., я знайшов, що код VBA може допомогти вам.
Варіант явний

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

Dim wbCSV як робочий зошит
Dim wsMstr як робочий аркуш: встановіть wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath як рядок: fPath = " C:\Users\DT168\Desktop\New folder\" 'шлях до файлів CSV, включити остаточний \
Dim fCSV як рядок

Якщо 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). Вставте xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'скопіюйте дату в головний аркуш і закрийте вихідний файл
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Close False
'готовий наступний 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 з крапкою з комою як роздільником? Дякую!
PS Гарна стаття!
Цей коментар був мінімізований модератором на сайті
Привіт команда!

Я використовую код для імпорту кількох файлів XML на один аркуш за допомогою VBA, однак проблема, з якою я стикаюся, полягає в тому, що кількість рядків досягає приблизно 650000, тоді він не обробляє решту файлів xml у папці та дає помилку, що немає файлів xml. . Потрібна ваша підтримка, щоб збільшити цю кількість.
Цей коментар був мінімізований модератором на сайті
Привіт експертам

Я використовую наведений вище код для імпорту кількох файлів xml на 1 аркуш за допомогою VBA, однак проблема, з якою я стикаюся, полягає в тому, що коли кількість рядків на аркуші досягає 650000, цей код не обробляє решту файлів xml у папці. Видає помилку "no files.xml". Потрібна ваша ласкава підтримка
Цей коментар був мінімізований модератором на сайті
Привіт, інструкції щодо імпорту кількох xml на одну вкладку документа Excel працюють, але мені було цікаво, як змусити його вирівняти стовпці. Мої файли xml не мають однакових тегів. Вони налаштовані так, що якщо у xml немає даних для деяких заголовків (тегів), то заголовок відсутній у цьому xml. Чи є спосіб змусити xml імпортувати, щоб одні й ті самі заголовки з кожного xml та пов’язаних даних потрапляли в один стовпець Excel?
There are no comments posted here yet
Load More

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL