Как сделать слияние в excel двух файлов?
Содержание
Вам когда-нибудь приходилось сводить несколько таблиц Excel в одну? Самое неприятное в этом процессе, обычно, заключается в том, что эти таблицы могут содержать сразу по несколько листов внутри каждого файла. Есть ли решение данной проблемы? Сегодня вы об этом узнаете.
Объединим несколько файлов Excel в один, воспользовавшись силой скрипта VBA
Этот способ сделает все за вас, но только вам придется немного под напрячься. Хорошо, если у вас есть хоть какие-то навыки программиста. Но, если вы полный чайник в Excel и, вообще, в компьютере, то переходите ко второму способу, либо, будьте очень внимательными.
Итак, приступим.
Как и в методе «Как объединить несколько файлов Ворд в один», во-первых, прежде чем дать команду объединить несколько таблиц в одну в Excel, вам нужно эти таблицы собрать в одну отдельную папку. Посмотрите на скриншоте, как я это сделал.
Теперь запустим программу VBA. Прочитайте в «Запуск скрипта VBA в Word», потому что принцип в Excel тот же самый.
Теперь, когда вы готовы, вот сам код скрипта:
Sub GetSheets() Path = "Укажите пусть до папки с файлами Excel" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Прошу обратить внимание на две строчки.
- Path = «Укажите пусть до папки с файлами Excel». Конечно, надпись в кавычках нужно заменить. Например, я заменил на … и вот, что у меня получилось: Path = » D:mrUnrealistDocumentsНовая папка»
- Filename = Dir(Path & «*.xls»). В кавычках указан формат файла. В Excel их, обычно, два: .xls и .xlsx. Нажмите на файл правой кнопкой мыши и посмотрите «Свойства» файла. В скобках указан правильный тип файла.несколько таблиц в одну excel
Этот код подойдет, если нужно объединить все листы в один файл Эксель. Но, если вам необходимо объединить определенные листы некоторых файлов, переходите к следующему способу.
Функция «Переместить/скопировать» поможет объединить несколько листов Excel в один файл
В этом методе мы научимся копировать листы из одного файла Excel в другие.
- Откройте все файлы, из которых вы собираетесь копировать листы, и тот файл (это может быть и новая пустая книга Эксель), в котором будут эти листы собраны.
- Теперь откройте книгу, из которой будете копировать листы. Выберите те листы, которые вам нужны. Для множественного выбора держите зажатой клавиши CTRL (для выбора отдельных листов), либо SHIFT (для выбора всех вместе листов).
- Нажмите по имени листа правой кнопкой мыши и в контекстном меню выберите пункт «Переместить/скопировать».
- В окне «Переместить или скопировать» выберите из списка «Переместить выбранные листы в книгу» нужную вам книгу. Т.е. ту, где вы собираете все листы вместе. А в списке «Перед листом» укажите место, где эти листы будут вставлены.
Если вы не желаете, чтобы ваши листы пропали из открытой книги, поставьте галочку «Создать копию». - Нажмите на кнопку «ОК» и выбранные листы будут перемещены или скопированы.
- Повторяйте со второго пункта до тех пор, пока вы не получите должного результата.
На этом все. Подписывайтесь, вступайте в группу вКонтакте или ОК, комментируйте, и не забывайте делиться с другими!
Оценка статьи:
(
votes, average:
out of 5)
Как объединить несколько файлов Excel в один Ссылка на основную публикацию
На одной из страниц этого сайта публиковалась небольшая статья о том, как сохранить листы активной рабочей книги Excel в отдельные файлы. Настало время рассмотреть обратный вопрос о том, как собрать информацию из разных файлов вообще и как объединить несколько файлов в одну книгу в частности. Сделать это можно легко и быстро, но об этом чуть позже.
Одновременная работа пользователей в одной книге
В ряде случаев приходится заниматься сбором либо обработкой информации одновременно нескольким пользователям. Существуют разные методы позволяющие не передавать электронную таблицу последовательно по цепочке от одного пользователя другому, а вести работу в ней одновременно, либо параллельно. Одним из таких методов является предоставление общего доступа к документу, когда пользователи могут вести одновременную работу с данными этого документа.
Еще одним способом ускорить процесс сбора или обработки данных является разделение рабочей книги на отдельные листы с последующим их объединением после пользовательской обработки. О том как можно разделить рабочую книгу на отдельные листы и сохранить эти листы отдельными файлами мы уже рассказывали. Сейчас остановимся подробнее на том, как объединить их обратно.
Объединение листов разных рабочих книг в одну
Объединение разных файлов в один либо определенных листов в одну книгу имеет разнообразные решения. Это и стандартный вариант с копированием и вставкой листов в нужную книгу, и использование макросов, и установка дополнительных программ, специализирующихся на объединении файлов, таких например, как MergeExcel. У каждого из этих способов есть свои плюсы и свои минусы. Со своей стороны хочу предложить еще один способ решения задачи по объединению листов из разных книг в одну. Не разбираясь с программным кодом макросов и не устанавливая дополнительных программ, можно быстро расширить Excel новыми возможностями, используя дополнение, называемое надстройкой.
Надстройка по объединению различных файлов в один создана на основе макроса VBA, но выгодно отличается от него удобством в использовании. Надстройка легко подключается и запускается одним нажатием кнопки, выведенной прямо в главное меню, после чего появляется диалоговое окно. Далее все интуитивно понятно, выбираются файлы, выбираются листы этих файлов, выбираются дополнительные параметры объединения и нажимается кнопка «Пуск».
видео по работе с надстройкой
макрос (надстройка) для объединения нескольких файлов Excel в одну книгу
Надстройка позволяет:
1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;
2. выбирать файлы для объединения, а также редактировать список выбранных файлов;
3. объединять все листы выбранных файлов в одну рабочую книгу;
4. объединять в рабочую книгу только непустые листы выбранных файлов;
5. собирать в итоговую книгу листы с заданным именем (можно использовать маску при помощи спец. символов совпадения);
6. собирать в одну книгу листы выбранных файлов с определенным номером (индексом), либо диапазоном номеров;
7. собирать листы с определенным значением в заданном диапазоне ячеек;
8. задавать дополнительные параметры для объединения, такие как присвоение листам имен объединяемых файлов и удаление из книги, в которой происходит объединение данных, собственных листов, которые были в этой книге изначально.
При необходимости имена листов сформированной рабочей книги можно быстро изменить при помощи надстройки для автоматического переименования листов.
Объединение диапазонов значений из разных листов разных рабочих книг на отдельном листе
Также существует возможность в автоматическом режиме перебрать все указанные в диалоговом окне рабочие книги, выбрать в них только необходимые листы, скопировать определенные пользователем диапазоны значений и вставить их на отдельном рабочем листе активной книги. При этом можно выбрать способ размещения данных на листе с итогами, диапазоны значений могут располагаться один за другим как по горизонтали, так и по вертикали. Таким образом можно быстро собрать информацию из разных книг в одну.
Другие материалы по теме:
Предположим, имеется куча книг Excel, все листы из которых надо объединить в один файл. Копировать руками долго и мучительно, поэтому имеет смысл использовать несложный макрос.
Открываем книгу, куда хотим собрать листы из других файлов, входим в редактор Visual Basic (ALT+F11), добавляем новый пустой модуль (в меню Insert — Module) и копируем туда текст вот такого макроса:
Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer Application.ScreenUpdating = False 'отключаем обновление экрана для скорости 'вызываем диалог выбора файлов для импорта FilesToOpen = Application.GetOpenFilename _ (FileFilter:="All files (*.*), *.*", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "Не выбрано ни одного файла!" Exit Sub End If 'проходим по всем выбранным файлам x = 1 While x