Как объединить несколько текстовых файлов в один?
В общем-то проблема не такая распространенная, как сбор данных из нескольких файлов/листов в Excel, но все же. Решил вот написать, как просто и быстро можно из множества текстовых файлов собрать информацию в один новый текстовый файл. Притом это не потребует от Вас никаких усилий, кроме как нажатия кнопочки и выбора нужных файлов. Ну и скачивания файла с этой странички. Или ручной вставки кода в свою книгу. Собственно, сам код:
Sub Get_All_TXT_Text() Dim avFiles, li As Long avFiles = Application.GetOpenFilename("TXT Files(*.txt),*.txt", , , , True) If VarType(avFiles) = vbBoolean Then Exit Sub Dim objFSO As Object, objTxtFile As Object, sTxt, sAllTxt Set objFSO = CreateObject("Scripting.FileSystemObject") For li = LBound(avFiles) To UBound(avFiles) Set objTxtFile = objFSO.OpenTextFile(avFiles(li), 1) sTxt = objTxtFile.ReadAll sAllTxt = sAllTxt & vbNewLine & sTxt objTxtFile.Close Next li Set objTxtFile = objFSO.CreateTextFile("C:\AllText.txt", True) objTxtFile.WriteLine sAllTxt objTxtFile.Close Set objTxtFile = Nothing: Set objFSO = Nothing End Sub |
Вот и все. Теперь этот код необходимо вставить в стандартный модуль. И либо создать кнопку на листе для его вызова(Как создать кнопку для вызова макроса на листе?), либо вызывать нажатием сочетания клавиш Alt+F8 -Get_All_TXT_Text -Выполнить.
После работы кода на диске "С" будет создан файл "AllText.txt", в котором и будут содержаться данные всех выбранных файлов.
Tips_Macro_Get_All_TXT_Text.xls (37,5 KiB, 5 369 скачиваний)
Так же см.:
Сбор данных с нескольких листов/книг
Как собрать данные с нескольких листов или книг?
Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам
Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки Надстройки Печать Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx ссылкиКомментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум
Спасибо большое. Поменяла в коде txt на csv - тоже обьединяет
Дмитрий, отличный макрос! Но есть огромная проблема - создает дополнительные абзацы. Это неисправимо?
Ахах! Сам нашел! Надо просто выкинуть & vbNewLine
А можно без диалогового окна? Как-то напрямую задать в макросе выбор всех файлов из папки?
Для этого есть другая статья:Просмотреть все файлы в папке
останется лишь совместить приведенный там код с кодом из данной статьи.
Добрый день! Спасибо за код. У меня 2 вопроса:
1) Подскажите пожалуйста почему при объединений файлов 1 строка и последняя строка выходят пустыми, как можно сделать что бы они не были пустыми?
2) Как можно выбирать 2 txt файла из разных папок? На данный момент я могу выбирать только из одной папки 2 txt файла, когда выбираю первый и перехожу к другой папки, у меня выбирает только последний.
Заранее спасибо за помощь.