Перейти до основного матеріалу

Як об’єднати кілька книг в одну головну книгу в 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 для програм вікна, натисніть Insert > Модулі, а потім скопіюйте код 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 \ Desktop \ 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 для Excel значно полегшує об’єднання кількох книг в одну. Давайте подивимося, як змусити цю функцію працювати в поєднанні декількох книг.

Перед поданням заявки Kutools для Excel, будь ласка завантажте та встановіть його спочатку.

1. Створіть нову книгу та натисніть Kutools Plus > Поєднувати. Потім з’явиться діалогове вікно, щоб нагадати вам, що всі об’єднані книги слід зберегти, і цю функцію не можна застосувати до захищених книг, натисніть кнопку OK кнопки.

2 В Об’єднайте робочі аркуші майстра, виберіть Об’єднайте кілька аркушів із книг в одну книгу , а потім клацніть на МАЙБУТНІ кнопку. Дивіться знімок екрана:

3 В Об’єднайте робочі аркуші - Крок 2 з 3 у діалоговому вікні натисніть додавати > філе or Папка щоб додати файли Excel, які ви об'єднаєте в один. Після додавання файлів Excel клацніть на обробка і виберіть папку для збереження головної книги. Дивіться знімок екрана:

Тепер усі робочі книги об’єднані в одну.

Порівняно з вищезазначеними двома методами, Kutools для Excel має такі переваги:

  • 1) Усі книги та робочі аркуші перелічені у діалоговому вікні;
  • 2) Для робочих аркушів, які ви хочете виключити із об’єднання, просто зніміть його;
  • 3) Пусті робочі аркуші виключаються автоматично;
  • 4) Оригінальна назва файлу буде додана як префікс до імені аркуша після об’єднання;
  • Щоб отримати більше функцій цієї функції, будь ласка, завітайте сюди.

  Якщо ви хочете отримати безкоштовну пробну версію (30 днів) цієї програми, натисніть, щоб завантажити, а потім перейдіть до застосування операції, як описано вище.


Kutools для Excel - Допомагає завжди закінчувати роботу заздалегідь, мати більше часу, щоб насолоджуватися життям
Ви часто бачите себе, граючись у наздоганяючу роботу, відсутність часу, щоб витратити себе та родину?  Kutools для Excel може допомогти вам впоратися 80% Головоломки Excel і підвищують ефективність роботи на 80%, дадуть вам більше часу, щоб піклуватися про сім'ю та насолоджуватися життям.
300 вдосконалених інструментів для 1500 сценаріїв роботи роблять вашу роботу набагато простішою, ніж будь-коли.
Більше не потрібно запам’ятовувати формули та коди VBA, дайте мозку відпочити відтепер.
Складні та повторювані операції можна виконати одноразово за кілька секунд.
Щодня зменшуйте тисячі операцій з клавіатурою та мишею, прощайтеся з професійними захворюваннями вже зараз.
Стати експертом Excel за 3 хвилини, допоможе вам швидко отримати визнання та підвищити заробітну плату.
110,000 300 високоефективних людей та XNUMX+ всесвітньо відомих компаній на вибір.
Зробіть ваші $ 39.0 вартістю більше, ніж $ 4000.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