Сборка листов из разных книг в одну
Предположим, имеется куча книг Excel, все листы из которых надо объединить в один файл. Копировать руками долго и мучительно, поэтому имеет смысл использовать несложный макрос.
Открываем книгу, куда хотим собрать листы из других файлов, входим в редактор Visual Basic сочетанием клавиш Alt+F11 одноименной кнопкой на вкладке Разработчик (Developer — Visual Basic), добавляем новый пустой модуль (в меню 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 <= UBound(FilesToOpen) Set importWB = Workbooks.Open(Filename:=FilesToOpen(x)) Sheets().Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) importWB.Close savechanges:=False x = x + 1 Wend Application.ScreenUpdating = True End Sub
После этого можно вернуться в Excel и запустить созданный макрос на вкладке Разработчик кнопкой Макросы (Developer — Macros) или нажав Alt+F8. Отобразится диалоговое окно открытия файла, где необходимо указать один или несколько (удерживая Ctrl или Shift) файлов, листы из которых надо добавить к текущей книге — и задача решена!
Ссылки по теме
- Что такое макросы, куда вставлять код макроса на Visual Basic
- Автоматическая сборка заданных листов из заданных книг с помощью надстройки PLEX
- Автоматическая сборка данных с нескольких листов на один итоговый лист с помощью надстройки PLEX
Merging data from more than one Excel sheet in the same workbook is a real hassle… until you use VBA macros.
Excel VBA is an integral part of Excel automation, and VBA’s usage and benefits can’t be undermined. If you’re in an uphill battle trying to consolidate multiple sheets and workbooks in Excel, we’re here to help.
The macros mentioned in this guide will help you achieve the seemingly insurmountable task in a matter of seconds (or minutes, if the data assets are large).
By following this tutorial, you’ll create your own VBA macro in Excel and efficiently merge multiple sheets into one single sheet.
Merging Multiple Excel Sheets in the Same Workbook
For this task, the data is stored in the following sheets:
- Sheet1
- Sheet2
- Sheet3
The sheet names listed above are for illustration purposes only. This VBA macro is generic and doesn’t depend on the sheet names; you can customize the code to use it with any sheet name(s).
Pre-Requisites for Running the Code
There are some prerequisites for running the VBA code listed below.
You need to store the macro code in a new Excel file. Save this workbook with a .xlsm extension. You can save the VBA macro workbook with any name.
Open a new Excel file; press Alt + F11 on your keyboard to open the Excel VBA editor. Once the editor opens, add a new code module by clicking on the Insert tab at the top. Select Module to insert a new module; this is where you’ll be entering the VBA macro code given below.
The data sheets to be consolidated should be in another separate workbook altogether. The name of the workbook and sheets can be whatever you choose.
As soon as you execute the VBA code, the VBA macro will cycle through each available worksheet in the primary workbook (data workbook) and paste the contents into a newly added sheet within the same workbook.
The consolidated data will be available in the sheet named Consolidated.
Running the VBA Code
It’s time to run the newly saved macro code. Copy-paste this code into the VBA editor’s module:
Sub consolidate_shts()'declare the various variables used within the code and the vba data types
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Integer, lastrow1 As Integer
'disable screen flickering and alert pop-ups during the execution
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
'store the name of the primary workbook in the a macro variable. Replace Test.xlsx with the name of your primary workbook
Set wbk1 = Workbooks("Test.xlsx")
'activate the workbook before performing the function(s) on it
wbk1.Activate
'run a vba for loop to check if a sheet Consolidated already exists. If it exists, the for loop will delete it.
For Each sht In wbk1.Sheets
If sht.Name = "Consolidated" Then sht.Delete
Next sht
'Add a new sheet to store the newly consolidated data
Worksheets.Add.Name = "Consolidated"
'Add some headers to each individual column within the consolidated sheet
With Sheets("Consolidated")
.Range("a1").Value = "OrderDate"
.Range("b1").Value = "Region"
.Range("c1").Value = "Rep"
.Range("d1").Value = "Item"
.Range("e1").Value = "Units"
.Range("f1").Value = "UnitCost"
.Range("g1").Value = "Total"
End With
'The newly created sheet consolidated will hold the consolidated data from each individual sheet in the primary workbook
For i = 1 To wbk1.Worksheets.Count
If Sheets(i).Name <> "Consolidated" Then
'Capture the last populated row from the data sheets in the workbook
lastrow = Sheets(i).Range("a1").End(xlDown).Row
'Capture the last populated row in the Consolidated sheet
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End(xlUp).Row + 1
'Copy data from source sheet and paste it in the consolidated sheet
Sheets(i).Range("a2:g" & lastrow).Copy Destination:=Sheets("Consolidated").Range("a" & lastrow1)
End If
Next i
'Enable Excel VBA functions for future use
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
The VBA Code Explained
First, declare all the variables you’re using within the code and assign them with the correct VBA data types to make the code run seamlessly.
Once you declare the variables, some basic housekeeping is needed. This is done by disabling screen flickering and suppressing pop-up alerts. For example, when you delete an existing sheet using the VBA code, a prompt within Excel asks for confirmation before deleting the sheet. Prompts like this are suppressed to enhance the speed of execution.
In the next step, you need to define the workbook’s name, which contains all of your data. Replace Test.xlsx with the name and extension of your workbook name. Make sure you surround the name with quotes.
Activate the primary workbook and delete any existing sheets with the name Consolidated to eliminate any previously stored data. The VBA code toggles through each sheet, and as soon as it encounters the sheet name Consolidated it’ll delete it. This is done using the VBA IF statement, which checks for logical conditions and deletes the sheet as soon as the condition is met.
A new sheet is added to the primary workbook to store the consolidated data. Subsequently, pre-formatted, standardized headers are added to this sheet. You can change the values of the titles (column headers) by updating the information next to the cell references within quotes.
For example: .Range(“a1”) = “OrderDate” can be replaced with .Range(“a1”) = “OrderNumber”
Next, a VBA FOR loop toggles through each worksheet, copies the sheet’s contents, and pastes the contents into the Consolidated worksheet before moving to the next sheet in the workbook. This process repeats until all sheets are copied over.
During this process, all the rows are auto-calculated and pasted in the Consolidated sheet. The last populated row is auto-calculated before the data is pasted in. The macro is dynamic and can adjust to varying data rows within each worksheet.
Once data from all sheets is pasted into the main consolidation sheet, the macro moves to the final leg of the code. The VBA functions initially disabled are enabled again for future use.
Consolidating Multiple Sheets Using Excel VBA Macro
Excel VBA is a superfluous programming language, which works well with all Excel components. Each piece of code is essential, and it’s important to remember that the execution is dependent on a line-by-line execution system, so you shouldn’t change the order of the code lines.
To customize the code for your requirements, you can make the required changes and run this code to consolidate the data efficiently and effectively in seconds.
Как объединить или объединить рабочие листы или книги в один рабочий лист?
В нашей повседневной работе мы можем столкнуться с проблемой объединения сотен листов или книг в один лист для анализа данных, что занимает много времени, если вы используете команду «Копировать и вставить» в Excel. В этом уроке я дам несколько советов по быстрому решению этой задачи. |
|
БЫСТРАЯ НАВИГАЦИЯ Объединение всех листов активной книги в один лист с помощью VBA |
Объединение всех листов активной книги в один лист с помощью VBA
В этом разделе я предоставляю код VBA, который создаст новый лист для сбора всех листов активной книги, пока вы ее запускаете.
1. Активируйте книгу, все листы которой вы хотите объединить, затем нажмите + ключи для открытия Microsoft Visual Basic для приложений окно.
2. Во всплывающем окне нажмите Вставить > Модули для создания нового скрипта модуля.
3. Скопируйте приведенный ниже код и вставьте его в скрипт.
|
4. Нажмите F5 key, то все данные на листах были объединены в новый лист с именем Combined, который помещается перед всеми листами.
Вы хотите повысить зарплату и много времени проводить с семьей? Вкладка Office повышает эффективность работы Microsoft Office на 50% прямо сейчас Невероятно, но работать с двумя или более документами проще и быстрее, чем над одним. По сравнению с известными браузерами инструмент с вкладками в Office Tab более мощный и эффективный. Сократите для вас сотни щелчков мыши и набора текста с клавиатуры каждый день, попрощайтесь с рукой мыши. Если вы обычно работаете с несколькими документами, вкладка Office поможет вам сэкономить время. 30— дневная бесплатная пробная версия, кредитная карта не требуется. Узнать большеСкачать сейчас |
Объединение десятков листов или книг в один лист / книгу с помощью щелчков мышью
С помощью VBA вы можете объединять листы только в активной книге, но как вы можете объединить листы из книг в лист или книгу?
Объединение листов из книг в один лист
Объединение листов из книг в одну книгу
Для решения этой задачи и удовлетворения других требований по комбинации листов Сочетать функция была разработана с четырьмя комбинированными сценариями:
- Объедините несколько листов или книг на один лист
- Объедините несколько листов или книг в одну книгу
- Объединить листы с одинаковыми именами в один лист
- Объединяйте значения на листах или в книгах на один лист
Здесь в качестве примера рассматривается второй вариант:
Объедините несколько листов или книг в одну книгу
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Активируйте Excel, щелкните Кутулс Плюс > Сочетать, появится диалоговое окно, напоминающее вам, что книги, которые вы хотите объединить, необходимо закрыть. Нажмите OK для продолжения.
2. в Объедините рабочие листы, шаг 1 диалог, проверьте Объедините несколько листов из книг в одну книгу вариант. Нажмите Download для перехода к следующему шагу мастера.
3. Нажмите Добавить > Файл or Папка чтобы добавить книги, которые вы хотите объединить, в Список рабочих книг панели, затем вы можете указать, какой лист будет объединен, проверив имена в Список рабочих листов панель. Нажмите Download перейти к последнему шагу мастера.
4. На этом шаге укажите нужные вам настройки. Затем нажмите Завершить.
5. Появится окно, в котором вы выберете папку для размещения объединенной книги, затем нажмите Сохраните.
Теперь книги объединены в одну книгу. И в начале всех листов мастер-лист с именем Kutools for Excel также создается, в котором перечислены некоторые сведения о листах и ссылки для каждого листа.
Демонстрация: объединение листов / книг в один лист или книгу |
Kutools for Excel:200 + полезных удобных инструментов, упрощающих сложные задачи в Excel в несколько кликов. |
Попрощайтесь с мышиной рукой и шейным спондилезом
300 продвинутых инструментов Kutools for Excel решить 80% Задачи Excel за считанные секунды, избавят вас от тысяч щелчков мышью.
Легко справляйтесь с 1500 рабочими сценариями, не нужно тратить время на поиск решений, у вас будет много времени, чтобы наслаждаться жизнью. Ежедневно повышайте производительность на 80% для более чем 110000 высокоэффективных людей, включая вас. Больше не мучиться мучительными формулами и VBA, дайте своему мозгу отдых и радостное рабочее настроение. 30— дневная бесплатная пробная версия со всеми функциями, 30день назад деньги без причины. Лучшее тело создает лучшую жизнь. |
Объединение двух таблиц в одну и обновление по столбцу кликами
Если вы хотите объединить две таблицы в одну и обновить данные на основе столбца, как показано на скриншоте ниже, вы можете попробовать Слияние таблиц полезности Kutools for Excel.
Kutools for Excel: более 200 удобных надстроек Excel для упрощения сложных задач в несколько кликов в Excel
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Нажмите Кутулс Плюс > Слияние таблиц включить Слияние таблиц Мастер.
2. На шаге 1 мастера вам необходимо отдельно выбрать диапазоны основной таблицы и таблицы поиска. Затем нажмите Download.
3. Отметьте ключевой столбец, на основе которого вы хотите обновить данные в основной таблице. Нажмите Download.
4. Затем отметьте столбцы в основной таблице, в которых вы хотите обновить данные на основе таблицы поиска. Нажмите Download.
5. На шаге 4 мастера отметьте столбцы, которые вы хотите добавить из справочной таблицы в основную таблицу. Нажмите Download.
6. На последнем этапе мастера укажите необходимые параметры настройки. Затем нажмите Завершить.
Теперь в основной таблице были обновлены данные и добавлены новые данные на основе таблицы поиска.
Демонстрация: объединение листов / книг в один лист или книгу |
Kutools for Excel:200 + полезных удобных инструментов, упрощающих сложные задачи в Excel в несколько кликов. |
Скачать образец файла
Рекомендуемые инструменты для повышения производительности
Вкладка Office — просмотр, редактирование и управление документами с вкладками в Microsoft Office 2019 — 2003 и Office 365
Профессиональная надстройка для ускорения работы Excel 2019-2007, сокращающая часы работы до секунд
Эта надстройка включает в себя десятки профессиональных групп, с более чем 300 опциями, которые автоматизируют большинство ваших повседневных задач в Excel и увеличивают вашу продуктивность как минимум на 50%. Например, группы опционов в один клик и пакетные преобразования.
Теперь у вас есть шанс ускорить себя с помощью Kutools for Excel!
anytka 0 / 0 / 0 Регистрация: 10.02.2013 Сообщений: 27 |
||||
1 |
||||
Обьединение нескольких листов данных в один макросом11.02.2013, 18:24. Показов 41075. Ответов 4 Метки нет (Все метки)
Здравствуйте, подскажите пожалуйста. Кликните здесь для просмотра всего текста
0 |
Watcher_1 356 / 162 / 27 Регистрация: 21.06.2011 Сообщений: 350 |
||||
11.02.2013, 21:29 |
2 |
|||
Как смог, понял структуру вашего файла…
1 |
Igor_Tr 4377 / 661 / 36 Регистрация: 17.01.2010 Сообщений: 2,134 |
||||
11.02.2013, 23:24 |
3 |
|||
Как раз что-то похожее делал для себя. Кидаю вариант и немного обясню. Предполагается, что у меня должен бы быть лист Общих данных «GenExMan» (в даном случае — обобщенный лист счетов с данными). Этот лист (раньше) был разделен так, что для каждого счета создался отдельный лист с именем счета и данными по этому счету. После создания отчета/обработки/ каждого счета, мне нужно опять опять все собрать на новый лист «MergeRecords» и потом вернуть на Android. Представленный код — это фрагмент общего, который все и собирает.
1 |
0 / 0 / 0 Регистрация: 22.01.2016 Сообщений: 1 |
|
22.01.2016, 20:29 |
4 |
Igor_Tr, вечер добрый, не могли бы вы подсказать как использовать ваш макрос в своей таблице?
0 |
Nyusya 0 / 0 / 0 Регистрация: 13.10.2015 Сообщений: 1 |
||||
08.08.2016, 09:43 |
5 |
|||
Как смог, понял структуру вашего файла…
Доброго дня!
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
08.08.2016, 09:43 |
5 |
объединение определенных листов в один |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |