Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як об’єднати кілька книг в одну головну книгу в Excel?

Ви коли-небудь застрягли, коли вам доводиться поєднувати кілька книг у головну книгу в Excel? Найстрашніше те, що книги, які потрібно об’єднати, містять кілька аркушів. І як об’єднати лише зазначені аркуші з кількох книг в одну книгу? Цей підручник демонструє кілька корисних методів, які допоможуть вам поетапно вирішити проблему.


Поєднайте кілька книг в одну книгу за допомогою функції переміщення або копіювання

Якщо потрібно об’єднати лише кілька книг, можна скористатися командою «Перемістити» або «Копіювати», щоб вручну перемістити або скопіювати аркуші з оригінальної книги в головну книгу.

1. Відкрийте книги, які ви об’єднаєте у головну книгу.

2. Виберіть робочі аркуші в оригінальній книзі, які ви перемістите або скопіюєте до головної книги.

Примітки:

1). Ви можете вибрати кілька суміжних робочих аркушів, утримуючи Ctrl клацання та клацання вкладки аркуша по одній.

2). Для вибору декількох сусідніх робочих аркушів клацніть на першій вкладці аркуша, утримуючи зсув , а потім клацніть на останній вкладці аркуша, щоб виділити їх усі.

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-денна гарантія повернення грошей без причини.

Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Tedi · 8 years ago
    This is superb :lol: helped me a lot....
  • To post as a guest, your comment is unpublished.
    Henrik · 8 years ago
    Hey

    Great tip. Did [i]almost[/i] all I wanted.

    In the combinde woorkbook, I would have lovede for the worksheet name to contain the name of the original woorkbook, so I know which woorkbook the data comes from.

    The data I'm combining, is from different archives. I have to search for an entry, but don't know which archive it's in.

    So by combining all the data in one file will make it possible for me to search all archives at once.

    But I still need to know, which archive the entry is in.

    Henrik
    • To post as a guest, your comment is unpublished.
      Code · 7 years ago
      For the code to incorporate the file name just do this.

      Sub GetSheets()
      Dim temp As String
      Path = "C:\Users\....\Desktop\Excel combine\"
      Filename = Dir(Path & "*.xlsx")
      Do While Filename ""
      Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
      temp = ActiveWorkbook.Name
      ActiveSheet.Name = temp
      ActiveWorkbook.Sheets(temp).Copy After:=ThisWorkbook.Sheets(1)
      Workbooks(Filename).Close
      Filename = Dir()
      Loop
      End Sub

      Note: this is to only copy the first sheet, it can be tweeked to do all sheets
      • To post as a guest, your comment is unpublished.
        Adriano Marcato · 6 years ago
        It's a great solution indeed. thank you.
        One Problem though, when I execute it like this excel will ask if I want to save alterations before closing (Since the name was changed), and I don't want to do it for every file (around 32 per execution).
        Would there be a way to solve this?
      • To post as a guest, your comment is unpublished.
        LAW · 7 years ago
        How do you incorporate more sheets and how do you specify a different master file to paste all the sheets.
  • To post as a guest, your comment is unpublished.
    Amir · 8 years ago
    Hi!
    Thanks a lot of this file.............
    :roll:
    Best Regard
  • To post as a guest, your comment is unpublished.
    Susie · 8 years ago
    I get a 'runtime error 1004', Copy Method of Worksheet class failed on the line that reads: Sheet.Copy After:=ThisWorkbook.Sheets(1). I'm using Excel 2010.

    Can you assist? Thanks, - Susie
    • To post as a guest, your comment is unpublished.
      Chris F · 5 years ago
      Go to view and unhide "PERSONAL" - it seems to have trouble executing the whole code while the master is hidden.
      You can make the macro native to that workbook, but you'd have to recreate the whole thing every time you wanted to use it
    • To post as a guest, your comment is unpublished.
      Chris F · 5 years ago
      [quote name="Susie"]I get a 'runtime error 1004', Copy Method of Worksheet class failed on the line that reads: Sheet.Copy After:=ThisWorkbook.Sheets(1). I'm using Excel 2010.

      Can you assist? Thanks, - Susie[/quote]
      Had the same problem, it works when I go to view and unhide "PERSONAL", it seems to have trouble accessing this macro with the master hidden.
    • To post as a guest, your comment is unpublished.
      samuel Birch · 5 years ago
      Hey Susie,

      Ive been working on this problem for a while now myself, getting the same error.

      Check to see if the module was created under PERSONAL instead of your active workbook.

      Once I created the module under the correct tree, the below code worked just fine.

      Sub GetSheets_xls()
      Dim Sheet As Worksheet
      Path = "C:\Users\yournamehere\Desktop\Testingfolder\"
      Filename = Dir(Path & "*.xls")
      Do While Filename ""
      Workbooks.Open Filename:=Path & Filename, ReadOnly:=False
      Set Sheet = ActiveWorkbook.Sheets(1)
      Sheet.Copy After:=ThisWorkbook.Sheets(1)
      'Next Sheet
      Workbooks(Filename).Close
      Filename = Dir()
      Loop
      End Sub




      Hope this helps!
      • To post as a guest, your comment is unpublished.
        DS · 4 years ago
        Thanks a lot. Your code worked well.
  • To post as a guest, your comment is unpublished.
    A. Karthi · 8 years ago
    Hi Plz help me out to this below condition.

    I have different workbook which has more than 5 worksheets each in different path. I need to consolidate all worksheets from different workbook into single workbook. Can anyone help me to resolve with macro.TIA!
    • To post as a guest, your comment is unpublished.
      E nic · 4 years ago
      Our office has duplication of data, (i.e.-name, address, city, amount, date signed) from several excel originals and trying to combine the data is going to be a work in progress. How can that be done to eliminate double work and double information entries?
    • To post as a guest, your comment is unpublished.
      Taslima · 5 years ago
      KUTOOLS Awsome solution.

      I need one more help when I create master workbook then cell color of work sheet is changed from original worksheet.

      How can I keep it like original worksheet.
    • To post as a guest, your comment is unpublished.
      Jay Chivo · 8 years ago
      [quote name="A. Karthi"]Hi Plz help me out to this below condition.

      I have different workbook which has more than 5 worksheets each in different path. I need to consolidate all worksheets from different workbook into single workbook. Can anyone help me to resolve with macro.TIA![/quote]

      Please go to download and install the Kutools for Excel, you can quickly get it done. But if you want to use a VBA, it may be too complicated.

      For more information about how to get it done, please visit:http://www.extendoffice.com/product/kutools-for-excel/excel-combine-worksheets-into-one.html