Макрос объединить листы в один лист. Как в Excel данные нескольких листов перенести в один

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

Одновременная работа пользователей в одной книге

В ряде случаев приходится заниматься сбором либо обработкой информации одновременно нескольким пользователям. Существуют разные методы позволяющие не передавать электронную таблицу последовательно по цепочке от одного пользователя другому, а вести работу в ней одновременно, либо параллельно. Одним из таких методов является предоставление общего доступа к документу, когда пользователи могут вести одновременную работу с данными этого документа.

Еще одним способом ускорить процесс сбора или обработки данных является разделение рабочей книги на отдельные листы с последующим их объединением после пользовательской обработки. О том как можно разделить рабочую книгу на отдельные листы и сохранить эти листы отдельными файлами мы уже рассказывали. Сейчас остановимся подробнее на том, как объединить их обратно.

Объединение листов разных рабочих книг в одну

Объединение разных файлов в один либо определенных листов в одну книгу имеет разнообразные решения. Это и стандартный вариант с копированием и вставкой листов в нужную книгу, и использование макросов, и установка дополнительных программ, специализирующихся на объединении файлов, таких например, как MergeExcel. У каждого из этих способов есть свои плюсы и свои минусы. Со своей стороны хочу предложить еще один способ решения задачи по объединению листов из разных книг в одну. Не разбираясь с программным кодом макросов и не устанавливая дополнительных программ, можно быстро расширить Excel новыми возможностями, используя дополнение, называемое надстройкой.

Надстройка по объединению различных файлов в один создана на основе макроса VBA, но выгодно отличается от него удобством в использовании. Надстройка легко подключается и запускается одним нажатием кнопки, выведенной прямо в главное меню, после чего появляется диалоговое окно. Далее все интуитивно понятно, выбираются файлы, выбираются листы этих файлов, выбираются дополнительные параметры объединения и нажимается кнопка "Пуск".


макрос (надстройка) для объединения нескольких файлов Excel в одну книгу

Надстройка позволяет:

1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;

2. выбирать файлы для объединения, а также редактировать список выбранных файлов;

3. объединять все листы выбранных файлов в одну рабочую книгу;

4. объединять в рабочую книгу только непустые листы выбранных файлов;

5. собирать в итоговую книгу листы с заданным именем (можно использовать маску при помощи спец. символов совпадения);

6. собирать в одну книгу листы выбранных файлов с определенным номером (индексом), либо диапазоном номеров;

7. собирать листы с определенным значением в заданном диапазоне ячеек;

8. задавать дополнительные параметры для объединения, такие как присвоение листам имен объединяемых файлов и удаление из книги, в которой происходит объединение данных, собственных листов, которые были в этой книге изначально.

При необходимости имена листов сформированной рабочей книги можно быстро изменить при помощи надстройки для автоматического переименования листов .

Объединение диапазонов значений из разных листов разных рабочих книг на отдельном листе

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

Вам когда-нибудь приходилось сводить несколько таблиц Excel в одну? Самое неприятное в этом процессе, обычно, заключается в том, что эти таблицы могут содержать сразу по несколько листов внутри каждого файла. Есть ли решение данной проблемы? Сегодня вы об этом узнаете.

Объединим несколько файлов Excel в один, воспользовавшись силой скрипта VBA

Этот способ сделает все за вас, но только вам придется немного под напрячься. Хорошо, если у вас есть хоть какие-то навыки программиста. Но, если вы полный чайник в Excel и, вообще, в компьютере, то , либо, будьте очень внимательными.

Итак, приступим.

Как и в методе « », во-первых, прежде чем дать команду объединить несколько таблиц в одну в Excel, вам нужно эти таблицы собрать в одну отдельную папку. Посмотрите на скриншоте, как я это сделал.

Теперь запустим программу VBA. Прочитайте в « », потому что принцип в 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

Прошу обратить внимание на две строчки.

Этот код подойдет, если нужно объединить все листы в один файл Эксель. Но, если вам необходимо объединить определенные листы некоторых файлов, переходите к

Чаще всего работать с табличными данными в офисе или дома приходится в табличном редакторе Microsoft Office Excel. Каждый файл этого приложения содержит один документ, разделенный на отдельные листы с электронными таблицами. Увы, среди команд приложения нет функции автоматического объединения нескольких листов документа в один. Тем не менее, такая задача возникает не так уж редко, и решать ее приходится либо «вручную», либо с использованием скриптов - «макросов».

Вам понадобится

  • Табличный редактор Microsoft Office Excel 2007 или 2010.

Инструкция

  • Если свести в один нужно не очень большое число листов, это нетрудно сделать простой комбинацией операций копирования и вставки. Выберите лист, на котором будут объединены все таблицы - сводный. Если он уже содержит данные, установите курсор ввода в первую ячейку добавляемой области - в ячейку первой строки правее крайнего столбца при добавлении данных по горизонтали или в ячейку первой колонки ниже последней строки при добавлении по вертикали.
  • Перейдите на лист, данные которого требуется добавить в сводный, и кликните правую нижнюю ячейку с данными. Нажмите сочетание клавиш Ctrl + Shift + Home, чтобы выделить всю таблицу. Обратите внимание, что выделить надо только ячейки с данными, а не все содержимое листа, иначе при вставке Excel выдаст сообщение об ошибке. Пометите скопированную область в буфер обмена - нажмите комбинацию клавиш Ctrl + C.
  • Вернитесь на сводный лист и вставьте скопированное - нажмите «горячие клавиши» Ctrl + V. Повторите операции позиционирования, копирования и вставки нужное число раз, если требуется объединить больше двух листов. По окончании процедуры скопированные листы можно удалить - кликайте их ярлычки правой кнопкой мыши, выбирайте пункт «Удалить» и нажимайте кнопку «Да» в диалоге подтверждения операции.
  • Если объединяемых листов достаточно много, придется воспользоваться скриптом, т.е. поместить в страницу кнопку и привязать к ней соответствующий макрос. Для этого надо воспользоваться вкладкой «Разработчик». Если она не отображается в меню, кликните свободное пространство на любой вкладке правой кнопкой мыши и выберите пункт «Настройка ленты». В списке «Основные вкладки» поставьте отметку у надписи «Разработчик» и нажмите OK.
  • На вкладке «Разработчик» раскройте выпадающий список «Вставить» из группы команд «Элементы управления» и выберите в нем самый первый элемент - кнопку. Затем щелчком мышки укажите место в таблице, куда надо поместить кнопку, и на экране появится диалоговое окно «Назначить макрос объекту».
  • Нажмите кнопку «Создать» и между первой и последней строками кода в открывшемся окне введите, например, такой набор команд:s_ = Sheets.CountSheets.Add After:=Sheets(s_)For i = 1 To s_ r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A1", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r_NextЗакройте редактор макросов.
  • Щелкните по созданной кнопке, и назначенный ей макрос создаст новый лист, в котором объединит содержимое всех остальных, сцепив их по вертикали.
  • Оцените статью!

    Предположим, у вас есть несколько отчётов о продажах по разным регионам. Если вы хотите выполнить вычисления и построить графики ко всему объёму данных, вам нужно собрать все данные на один сводный лист. Переключение между несколькими книгами, бесконечное копирование сотен строк или написание VBA может занять много времени.

    С надстройкой «Объединить листы», вы сможете собрать данные на один сводный лист в считанные секунды:

    • Собрать данные листов из разных книг на одном листе
    • Собрать данные листов с одинаковым именем и объединить по имени вкладки
    • Объединить данные листов с идентичной структурой под одним заголовком
    • Сохранить форматирование в сводном листе результата

    Добавить «Объединить листы» в Excel 2016, 2013, 2010, 2007

    Подходит для: Microsoft Excel 2016 - 2007, desktop Office 365 (32-бит и 64-бит).

    Как работать с надстройкой:

    Как объединить данные из нескольких листов в один в один за 3 шага

    С надстройкой «Объединить листы» вы можете собрать и объединить данные нескольких листов — и из разных книг — в один главный лист всего за 3 шага:

    1. Нажмите кнопку «Объединить листы» на панели XLTools > Выберите тип операции:

    • Объединить данные листов с одинаковым именем на одном листе

    2. Отметьте листы, которые нудно объединить. Дерево данных отображает все листы во всех открытых книгах.

    3. Нажмите кнопку «Объединить» > Готово! Все данные скопированы на один главный сводный лист.


    Как объединить данные нескольких листов на одном сводном листе

    Предположим, у вас есть ряд листов, и каждый из них содержит отчёт о продажах по конкретной категории продуктов. Надстройка поможет вам скопировать все эти отдельные отчёты и объединить данные в один сводный лист.

    1. Нажмите кнопку «Объединить листы» > Выберите «Объединить данные нескольких листов на одном листе».

    2. Нажмите кнопку «Объединить» > Готово, все данные из выбранных листов собраны на одном главном листе в новой книге.


    Как объединить данные из листов c одинаковым именем на одном сводном листе

    Предположим, у вас есть ряд книг, и каждая из них содержит отчёт о региональных продажах. Каждый отчёт разбит на листы с данными по конкретным продуктам — таким образом, вкладки в региональных отчётах имеют одинаковые названия. Надстройка поможет вам скопировать данные по всем отчётам в один сводный лист.

    1. Нажмите кнопку «Объединить листы» > Выберите «Объединить данные листов с одинаковым именем на одном листе».
    2. Отметьте флажком «Таблицы с заголовками», если это так.
      Совет: так, данные будут объединены под единым заголовком. Это удобно, если структура листов, которые вы объединяете, единообразна, напр., если отчёты созданы по одному шаблону. Если заголовки не совпадают, каждый диапазон данных будет добавлен со своим заголовком.
    3. Выберите листы для объединения, установив соответствующие флажки в дереве данных.
      Совет: вместо поочерёдного объединения листов с одинаковым называнием по группам (одна именная группа за другой), вы можете выбрать их все сразу. Надстройка автоматически соберет данные по одинаковым названиям вкладок и вынесет их на соответствующие отдельные листы сводной книги.
    4. Нажмите кнопку «Объединить» > Готово, все данные выбранных листов с одинаковым именем собраны в новой сводной книге.


    Каким образом данные копируются на сводный лист

    Объединение данных по сути означает извлечение и копирование данных из нескольких исходных листов на новый лист.

    • Данные копируются полностью — весь диапазон до последней использованной ячейки на исходном листе.
    • Скопированные диапазоны добавляются последовательно, один диапазон под последней строкой предыдущего диапазона.
    • Надстройка XLTools «Объединить листы» сохраняет форматирование ячеек и таблиц, ссылки на ячейки, функции и формулы, объединённые ячейки, т.д.
    • Исходные данные не подвергаются изменениям.

    Как объединить несколько листов в одну книгу

    Вы можете объединить несколько листов в одну книгу с помощью надстройки XLTools Органайзер книг . Она помогает копировать и управлять множеством листов одновременно.

    Появились вопросы или предложения? Оставьте комментарий ниже.

    Инструкция

    Если свести в один нужно не очень большое число листов , это нетрудно сделать простой комбинацией операций копирования и вставки. Выберите лист, на котором будут объединены все таблицы - сводный. Если он уже содержит данные, установите курсор ввода в первую ячейку добавляемой области - в ячейку первой строки правее крайнего столбца при добавлении данных по горизонтали или в ячейку первой колонки ниже последней строки при добавлении по вертикали.

    Перейдите на лист, данные которого требуется добавить в сводный, и кликните правую нижнюю ячейку с данными. Нажмите сочетание клавиш Ctrl + Shift + Home, чтобы выделить всю таблицу. Обратите внимание, что выделить надо только ячейки с данными, а не все содержимое листа, иначе при вставке Excel выдаст сообщение об ошибке. Пометите скопированную область в буфер обмена - нажмите комбинацию клавиш Ctrl + C.

    Вернитесь на сводный лист и вставьте скопированное - нажмите «горячие клавиши» Ctrl + V. Повторите операции позиционирования, копирования и вставки нужное число раз, если требуется объединить больше двух листов . По окончании процедуры скопированные листы можно удалить - кликайте их ярлычки правой кнопкой мыши, выбирайте пункт «Удалить» и нажимайте кнопку «Да» в диалоге подтверждения операции.

    Если объединяемых листов достаточно много, придется воспользоваться скриптом, т.е. поместить в страницу кнопку и привязать к ней соответствующий макрос. Для этого надо воспользоваться вкладкой «Разработчик». Если она не отображается в меню, кликните свободное пространство на любой вкладке правой кнопкой мыши и выберите пункт «Настройка ленты». В списке «Основные вкладки» поставьте отметку у надписи «Разработчик» и нажмите OK.

    На вкладке «Разработчик» раскройте выпадающий список «Вставить» из группы команд «Элементы управления» и выберите в нем самый первый элемент - кнопку. Затем щелчком мышки укажите место в таблице, куда надо поместить кнопку, и на экране появится диалоговое окно «Назначить макрос объекту».

    Нажмите кнопку «Создать» и между первой и последней строками кода в открывшемся окне введите, например, такой набор команд:s_ = Sheets.CountSheets.Add After:=Sheets(s_)For i = 1 To s_ r_ = Sheets(i).Cells.SpecialCells(xlLastCell).Row Sheets(i).Range("A1", Sheets(i).Cells.SpecialCells(xlLastCell)).Copy Sheets(s_ + 1).Range("a" & n_ + 1) n_ = n_ + r_NextЗакройте редактор макросов.

    Щелкните по созданной кнопке, и назначенный ей макрос создаст новый лист, в котором объединит содержимое всех остальных, сцепив их по вертикали.

    Источники:

    • как объединить листы в excel
    • Как удалить переносы строк

    Строками в табличном редакторе Microsoft Office Excel не всегда называют то же самое, что имеется в виду при работе с обычным текстом - в этом приложении такое определение дают ряду ячеек таблицы. Поэтому и объектом операции переноса здесь может быть как горизонтальная группа ячеек таблицы, так и помещенная в отдельную ячейку строка текста.

    Вам понадобится

    • Табличный редактор Microsoft Office Excel 2007 или 2010.

    Инструкция

    Запустив табличный редактор, загрузите в него нужную электронную таблицу и выделите строку , которую надо перенести в другое место этой таблицы. Для этого кликните левой кнопкой мыши по заголовку нужного ряда ячеек - клетке с порядковым номером ряда, помещенной левее первой колонки.

    Вырежьте выделенную строку - нажмите сочетание клавиш Ctrl + X или кликните выделение правой кнопкой мыши и выберите команду «Вырезать» в контекстном меню.

    Выделите тот ряд таблицы, перед которым нужно разместить переносимую строку , и вновь раскройте контекстное меню - кликните выделение правой кнопкой мыши. На этот раз выберите команду «Вставить вырезанные ячейки» и операция переноса строки будет завершена.

    Если требуется не перемещение строки, а вставка в определенное место текста одной из ячеек непечатаемого символа «конец строки», начните с включения режима редактирования этой ячейки. Для этого выделите ее и дважды кликните левой кнопкой мыши или нажмите клавишу F2. Затем переместите курсор ввода в нужную позицию и нажмите сочетание клавиш Alt + Enter. Весь оставшийся справа от курсора текст ячейки будет перенесен на следующую строку .

    При необходимости автоматически вставить переносы во все ячейки электронной таблицы, которые содержат текстовые строки, не вмещающиеся в ширину колонки, выделите всю таблицу - нажмите сочетание клавиш Ctrl + A. Если текст размещен не во всех колонках и строках, можно выделить только нужную область таблицы. Затем на вкладке «Главная» в меню Excel нажмите кнопку «Перенос текста» - она помещена в правый верхний угол группы команд «Выравнивание».

    Этого же эффекта можно добиться и другим способом. После выделения нужной области таблицы кликните ее правой кнопкой мыши и в контекстном меню выберите строку «Формат ячеек». Откроется отдельное окно, в котором перейдите на вкладку «Выравнивание» и поставьте метку в поле «Переносить по словам». Затем нажмите кнопку OK, и задача будет решена.