Перейти к основному содержанию

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

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


Объедините несколько книг в одну книгу с помощью функции перемещения или копирования

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

1. Откройте книги, которые вы объедините в основную книгу.

2. Выберите листы в исходной книге, которые вы переместите или скопируете в основную книгу.

Ноты:

1). Вы можете выбрать несколько несмежных листов, удерживая Ctrl и щелкая вкладки листа одну за другой.

2). Чтобы выбрать несколько соседних листов, нажмите вкладку первого листа и удерживайте Shift ключ, а затем щелкните вкладку последнего листа, чтобы выбрать их все.

3). Вы можете щелкнуть правой кнопкой мыши на любой вкладке листа, щелкнуть Выбрать все листы в контекстном меню, чтобы выбрать все листы в книге одновременно.

3. После выбора необходимых листов щелкните правой кнопкой мыши вкладку листа, а затем щелкните Переместить или скопировать из контекстного меню. Смотрите скриншот:

4. Затем Переместить или скопировать всплывает диалоговое окно в Бронировать в раскрывающемся списке выберите основную книгу, в которую вы переместите или скопируете листы. Выберите переместить, чтобы закончить в Перед листом поле, отметьте Создать копию поле и, наконец, щелкните OK .

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


Объединение нескольких книг или указанных листов книг в основную книгу с помощью VBA

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

1. Поместите все книги, которые вы хотите объединить, в одну в один каталог.

2. Запустите файл Excel (эта книга будет основной книгой).

3. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, затем скопируйте ниже код VBA в окно модуля.

Код VBA 1: объединить несколько книг Excel в одну

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xlsx")
  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
	

Ноты:

1. Приведенный выше код VBA сохранит имена листов исходных книг после слияния.

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

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

В кодах VBA: «C: \ Users \ DT168 \ Рабочий стол \ KTE \»- это путь к папке. В коде VBA 3 "Лист1, Лист3"- это указанные рабочие листы книг, которые вы объедините в основную книгу. Вы можете изменить их в зависимости от ваших потребностей.

Код VBA 2: объединить книги в одну (каждый рабочий лист будет назван с префиксом исходного имени файла):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Код VBA 3: объединить указанные листы книг в основную книгу:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. нажмите F5 ключ для запуска кода. Затем все рабочие листы или указанные рабочие листы рабочих книг в определенной папке сразу объединяются в основную книгу.


Легко объединяйте несколько книг или указанные листы книг в одну книгу

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

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Создайте новую книгу и щелкните Кутулс Плюс > Сочетать. Затем появится диалоговое окно с напоминанием о том, что все объединенные книги должны быть сохранены, а функция не может быть применена к защищенным книгам, нажмите кнопку OK .

2. в Комбинировать листы мастер, выберите Объедините несколько листов из книг в одну книгу вариант, а затем щелкните Следующая кнопка. Смотрите скриншот:

3. в Объединить рабочие листы - шаг 2 из 3 диалогового окна, нажмите Добавить > Файл or Папка чтобы добавить файлы Excel, которые вы объедините в один. После добавления файлов Excel щелкните значок Завершить и выберите папку для сохранения основной книги. Смотрите скриншот:

Теперь все книги объединены в одну.

По сравнению с двумя вышеуказанными методами, Kutools for Excel имеет следующие преимущества:

  • 1) Все книги и рабочие листы перечислены в диалоговом окне;
  • 2) Для листов, которые вы хотите исключить из объединения, просто снимите флажок;
  • 3) Пустые рабочие листы исключаются автоматически;
  • 4) Исходное имя файла будет добавлено в качестве префикса к имени листа после объединения;
  • Чтобы узнать о дополнительных функциях этой функции, пожалуйста, посетите здесь.

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


Kutools для Excel - Помогает всегда закончить работу раньше времени, чтобы у вас было больше времени, чтобы наслаждаться жизнью
Вы часто играете в догонялки с работой, не хватает времени на себя и семью?  Kutools for Excel может помочь вам справиться с 80% Совершенствуйте головоломки и повысьте эффективность работы на 80%, дайте вам больше времени, чтобы заботиться о семье и наслаждаться жизнью.
300 расширенных инструментов для 1500 рабочих сценариев сделают вашу работу намного проще, чем когда-либо.
Больше не нужно запоминать формулы и коды VBA, теперь дайте вашему мозгу отдохнуть.
Сложные и повторяющиеся операции могут быть выполнены разовой обработкой за секунды.
Сократите количество операций с клавиатурой и мышью каждый день, попрощайтесь с профессиональными заболеваниями прямо сейчас.
Станьте экспертом по Excel за 3 минуты, это поможет вам быстро получить признание и продвижение по службе.
110,000 300 высокоэффективных людей и выбор XNUMX+ всемирно известных компаний.
Сделайте так, чтобы ваши 39.0 доллара были больше, чем обучение других людей.
Полнофункциональная бесплатная 30-дневная пробная версия. 60-дневная гарантия возврата денег без причины.

Comments (146)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have one workbook with 100+ sheets, I want to move all 100+ sheets into another workbook in a single sheet.
This comment was minimized by the moderator on the site
I had to read throught the comments to find suggestions that worked for my application of the VBA CODE 2, but I managed to get it to work doing the following things:
1. make sure to change "C:\Users\DT168\Desktop\KTE\" to your own directory to wherever you have your files are located. don't forget the extra "\" at the end!2. my spreadsheets were extension ".xls", so I deleted the extra "x" in this line, like so: xStrFName = Dir(xStrPath & "*.xlsx")3. I placed all my spreadsheets in a single folder, and only those files were the contents of that folder, the target macro enabled spreadsheet where this vba was running from was saved outside of this folder (hopefully this makes sense).
one thing that I didn't want to mess with though is I only needed to merge the 1st tab of each spreadsheet, but I didn't want to mess with the code so if each workbook you want to merge into one has multiple tabs, this code will grab all of the tabs on each workbook and place them in your target spreadsheet, I had to manually delete all the tabs I didn't want.
if the author of this vba could reply to me, how do you change the code to just copy the 1st tab as opposed to all the tabs?
thank you!
This comment was minimized by the moderator on the site
hi I want a change. If the the sheet name is same then the data should be appended in the same name sheet rather than adding a sheet. for example if i have 10 files with jan, feb, mar same sheetnames. then result should be 1 file having jan, feb, mar only 3 sheets with the data of all 10 files. thanks
This comment was minimized by the moderator on the site
Good morning,

Basically I have to copy the values of another file example c: \ test.xlsx (sheet name "date"):

I have to copy the values from A2: T20


And I have to paste in another Extract.xlsx file on the “Extracts” folder on A2.


PLEASE NOTE: You must run vba when opening the file.
This comment was minimized by the moderator on the site
Hello! I need to merge multiple files into one, that are password protected. All source files use the same password. What changes are needed to the first VBA script to merge the files without having to enter the password each time?
This comment was minimized by the moderator on the site
Hello any one can help me, I want to combine sheet 2 only from 5 different sheet, can you script for me.
This comment was minimized by the moderator on the site
you can use Array function to copy the multiple sheets to combine in one file
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
how to use VBA code 1 to amend and make it runs to combine all the .xlsx files into one excel file and each excel spreedsheet tab in the combined excel file should be named as original file name.thanks
This comment was minimized by the moderator on the site
What part of VBA code 3 specifies the name of the worksheet to be copied?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations