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

or

Як об’єднати або об’єднати аркуші чи книги в один аркуш?

У нашій повсякденній роботі ми можемо зіткнутися з проблемою, яка об’єднує сотні аркушів або книг в один аркуш для аналізу даних, що займає багато часу, якщо ви використовуєте команду Копіювати та вставити в Excel. Тут, у цьому підручнику, я дам кілька порад щодо швидкого вирішення цієї роботи.

doc об'єднати 1

ШВИДКА НАВІГАЦІЯ

Об’єднання всіх аркушів активної книги в один аркуш із VBA
Об’єднання десятків аркушів або робочих книжок в один аркуш / книгу клацаннями
Об’єднання двох таблиць в одну та оновлення стовпчиком із кліками
Завантажте зразок файлу


Об’єднання всіх аркушів активної книги в один аркуш із VBA

У цьому розділі я надаю код VBA, який створить новий аркуш для збору всіх аркушів активної книги під час її запуску.

1. Активуйте книгу, для якої потрібно об’єднати всі її аркуші, а потім натисніть + клавіші, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. У спливаючому вікні натисніть Insert > Модулі створити новий сценарій модуля.

3. Скопіюйте код нижче та вставте їх у сценарій.

Sub Combine()
'UpdatebyExtendoffice
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
doc об'єднати 2

4. прес F5 ключ, тоді всі дані на аркушах об’єднані в новий аркуш із назвою Комбінований, який розміщується перед усіма аркушами.


от рухатися

Хочете отримати підвищення зарплати та багато часу, щоб супроводжувати сім’ю?

Вкладка Office підвищує вашу ефективність у роботі Microsoft Office на 50%

Неймовірно, працювати з двома або більше документами простіше і швидше, ніж працювати з одним.

У порівнянні з відомими браузерами інструмент з вкладками на вкладці Office є потужнішим та ефективнішим.

Зменште сотні клацань миші та набору тексту за допомогою клавіатури щодня, прощайтеся з рукою миші.

Якщо ви зазвичай працюєте з кількома документами, вкладка Office допоможе вам заощадити час.

30-денна безкоштовна пробна версія, кредитна картка не потрібна.

ДетальнішеБезкоштовно завантажити зараз


Об’єднання десятків аркушів або робочих книжок в один аркуш / книгу клацаннями

За допомогою VBA ви можете поєднувати лише аркуші в активній книзі, але як можна об’єднати аркуші між книгами в аркуш або книгу?

Об’єднайте аркуші між книгами в один аркуш
doc об'єднати 18

Об’єднайте аркуші між книгами в одну книгу
doc об'єднати 3

Для вирішення цієї роботи та задоволення інших вимог щодо комбінації аркушів, Поєднувати Функція розроблена з чотирма комбінованими сценаріями:

  • Поєднайте кілька аркушів або робочих книжок в один аркуш
  • Поєднайте декілька аркушів або книжок в одну книгу
  • Об’єднайте однойменні аркуші в один аркуш
  • Об’єднайте значення на аркушах або робочих книгах в один аркуш

Тут бере другий варіант як примірник:

Поєднайте декілька аркушів або книжок в одну книгу

після безкоштовна установка Kutools для Excel, будь-ласка, виконайте наведені нижче дії:

1. Активуйте Excel, натисніть Kutools Plus > Поєднувати, вискакує діалогове вікно, щоб нагадати, що книги, які ви хочете об’єднати, потрібно закрити. Клацніть OK продовжувати.
doc об'єднати 4
doc об'єднати 5

2 В Крок 1: Об’єднайте робочі аркуші діалогове вікно, перевірте Об’єднайте кілька аркушів із книг в одну книгу варіант Натисніть наступного щоб перейти до наступного кроку майстра.
doc об'єднати 6

3. клацання додавати > філе or Папка додати книги, які ви хочете об’єднати, до Список робочих книжок панелі, тоді ви можете вказати, який аркуш буде об'єднано, перевіривши імена в Список робочого аркуша панелі. Клацніть наступного перейти до останнього кроку майстра.
doc об'єднати 7

4. На цьому кроці вкажіть потрібні налаштування. Потім клацніть обробка.
doc об'єднати 8

5. Вискакує вікно для вибору папки для розміщення об’єднаної книги, а потім клацніть зберегти.
doc об'єднати 9

Тепер книжки об’єднано в одну книгу. І на лицьовій стороні всіх аркушів також створюється головний аркуш під назвою Kutools для Excel, який містить певну інформацію про аркуші та посилання на кожен аркуш.
doc об'єднати 10

Демонстрація: Об’єднайте аркуші / книги в один аркуш або книгу

Kutools для Excel: 200 + корисних зручних інструментів, що спрощує складні завдання в Excel за кілька кліків.

Попрощайтеся з рукою миші та спондильозом шийки матки

300 вдосконалених інструментів Kutools для Excel вирішують 80% завдань Excel за лічені секунди, витягуючи вас з тисячі клацань мишею.

Легко впорайтеся з 1500 робочими сценаріями, не потрібно витрачати час на пошук рішень, у вас є багато часу, щоб насолодитися своїм життям.

Покращуйте продуктивність на 80% для 110000+ високоефективних людей щодня, звичайно, включаючи вас.

Щоб вас більше не мучили болісні формули та VBA, дайте своєму мозку відпочинок та радісний робочий настрій.

30-денна безкоштовна пробна версія з повними функціями, 30-денна повернення грошей без причин.

Краще тіло створює краще життя.


Об’єднання двох таблиць в одну та оновлення стовпчиком із кліками

Якщо ви хочете об'єднати дві таблиці в одну і оновити дані на основі стовпця, як показано на знімку екрана, ви можете спробувати Злиття таблиць корисність Kutools для Excel.
doc об'єднати 11

Kutools для Excel: більше 200 зручних надбудов Excel для спрощення складних завдань у кілька кліків у програмі Excel

після безкоштовна установка Kutools для Excel, будь-ласка, виконайте наведені нижче дії:

1. клацання Kutools Plus > Злиття таблиць для того, щоб Злиття таблиць майстра.
doc об'єднати 12

2. На кроці 1 майстра потрібно окремо вибрати основну таблицю та діапазони таблиці пошуку. Потім клацніть наступного.
doc об'єднати 13

3. Позначте ключовий стовпець, на основі якого потрібно оновити дані в основній таблиці. Клацніть наступного.
doc об'єднати 14

4. Потім перевірте стовпці в головній таблиці, в яких ви хочете оновити дані на основі таблиці пошуку. Клацніть наступного.
doc об'єднати 15

5. На кроці 4 майстра поставте прапорець біля стовпців, які потрібно додати із таблиці пошуку в основну таблицю. Клацніть наступного.
doc об'єднати 16

6. На останньому кроці майстра вкажіть потрібні параметри налаштування. Потім клацніть обробка.
doc об'єднати 17

Тепер основна таблиця оновила дані та додала нові дані на основі таблиці пошуку.

Демонстрація: Об’єднайте аркуші / книги в один аркуш або книгу

Kutools для Excel: 200 + корисних зручних інструментів, що спрощує складні завдання в Excel за кілька кліків.


Завантажте зразок файлу

зразок


Рекомендовані засоби підвищення продуктивності

Вкладка Office - перегляд, редагування та управління документами на вкладках у Microsoft Office 2019 - 2003 та Office 365


вкладка офісу

Професійна надбудова для прискорення Excel 2019-2007, що зменшує години роботи на секунди

Ця надбудова включає десятки професійних груп із 300+ опціями, які дозволять автоматизувати більшість ваших щоденних завдань у Excel та збільшити вашу продуктивність щонайменше на 50%. Такі як групи оптонів одним кліком та пакетні перетворення.
Тепер ваш шанс пришвидшити себе за допомогою Kutools для Excel!


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.
    Pete · 9 months ago
    @martinoreilly Just delete "Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select" from the code.

    If you want to merge all rows from all worksheets, just use the code:

    Sub Combine()
    'UpdatebyExtendoffice
    Dim J As Integer
    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add
    Sheets(1).Name = "Combined"
    Sheets(2).Activate
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")
    For J = 2 To Sheets.Count
    Sheets(J).Activate
    Range("A1").Select
    Selection.CurrentRegion.Select
    Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
    Next
    End Sub
  • To post as a guest, your comment is unpublished.
    Sunny · 9 months ago
    @AJIT DIXIT The Combine function of Kutools for Excel can help you to insert sheet name in a new row of each combined range in the combined sheet by checking First row of each range (new row) in Insert worksheet information section in the last step of the Combine.
  • To post as a guest, your comment is unpublished.
    AJIT DIXIT · 10 months ago
    In combining shhets I want to add one extra column in combined sheet as ShhetName
    Can you suggest ?
  • To post as a guest, your comment is unpublished.
    Eben · 11 months ago
    Hi - this function works well except my file has more than 900 sheets, and when I change the maximum number of rows (Loc 16, "A65536") to a higher number, the macro doesn't work. Is there a way to increase the number of rows that can be shown on the combine sheet?
  • To post as a guest, your comment is unpublished.
    Charlotte · 1 years ago
    The VBA code works fine but I want the data to be merged horizontally(side by side).
    Hope you can help.
  • To post as a guest, your comment is unpublished.
    Sunny · 1 years ago
    @HS Hi, HS, you mean to combine same ranges from sheets into one sheet, it that right? If so, this article may help you: https://www.extendoffice.com/documents/excel/2754-excel-combine-ranges-from-different-worksheets-into-one.html#a3
  • To post as a guest, your comment is unpublished.
    Sunny · 1 years ago
    @Daniel Hi, Daniel, I do not understand your question as you describe it not clearly, but if you have the Combine function in Excel, it can solve most of your question about combining sheets.
  • To post as a guest, your comment is unpublished.
    Daniel · 1 years ago
    Hi,


    Great Code and for the most part it works fantastically well.


    Could I suggest creating a written tutorial for each line of code. I'd love to be able to play around with it to suit my Company's needs.

    In the meantime however could you talk me through problems that would hinder this code from copying all data from each Sheet? I've noticed some sheets in my workbook aren't being copied at all.

    To give you some context I'm dealing with roughly 330 sheets and they hold from 50 to 500 lines in each.


    looking forward to hearing from you.
  • To post as a guest, your comment is unpublished.
    HS · 1 years ago
    Hi,

    Is it possible to only copy a particular range of cells for example A:4:FU38 from each sheet?


    Also in the Combined sheet where the data is copied to, can the tab names from where the data is copied included in column A to enable lookups or to pivot the data?


    Finally, can i specify the list of worksheets from which to copy the data across or maybe i can specify something like copy all worksheets to the left of a particular worksheet in the file.


    Thanks in advance for your help
  • To post as a guest, your comment is unpublished.
    Dennis · 1 years ago
    This VBA code is an absolute lifesaver. Thank you!!
  • To post as a guest, your comment is unpublished.
    Sunny · 2 years ago
    @martinoreilly Yes, the code only can keep first row of the first tab, because it is used to consolidate, if you want to keep all contents of each sheet, you can try Combine utility of Kutools for Excel, it is free fior 60 days
  • To post as a guest, your comment is unpublished.
    martinoreilly · 2 years ago
    Hi. This code works well but I have the same problem as adj. The 1st row form each tab doesn't appear in the combined tab - except he first tab. Thanks
  • To post as a guest, your comment is unpublished.
    Sunny · 2 years ago
    @elok Hello, elok, did the problem appear while you applying Combine function? If so, please go to contact us support@extendoffice.com to describe the problem with more details, our support will handle the problem for you.
  • To post as a guest, your comment is unpublished.
    elok · 2 years ago
    i had a problem when I try to combine all same name worksheet to one worksheet, it works but some value are missing. so what should i do?
  • To post as a guest, your comment is unpublished.
    Sunny · 2 years ago
    @thangaraj571@gmail.com Sorry, Thangaraj R, I do not undertsand your problem clearly, could you upload a screenshot to describe your quetion with more detials?
  • To post as a guest, your comment is unpublished.
    Sunny · 2 years ago
    @Andrew Thanks for your support, Andrew, I am glad that the macro can help you.
  • To post as a guest, your comment is unpublished.
    Sunny · 2 years ago
    @Gio Sorry, I do not understand your problem clearly, do you mean to combine sheets with same column header? If so, this article may help you.

    https://www.extendoffice.com/documents/excel/3252-excel-merge-excel-files-same-header.html
  • To post as a guest, your comment is unpublished.
    Andrew · 2 years ago
    Thanks that macro saved my day. I had over 40 sheets of data to combine into one and although my computer bogged for a minute or two, it completed without issue. The only modification I made was I tweaked the macro to start with A2 instead of A1 since A1 was my column headers.
  • To post as a guest, your comment is unpublished.
    thangaraj571@gmail.com · 2 years ago
    hi I would like combine all the worksheets in single sheet where i need data of column A of all worksheets and I need the worksheet names in column B
  • To post as a guest, your comment is unpublished.
    Gio · 2 years ago
    Hi all,
    I need to combine only sheets with identical heading, ship other sheets.


    thanks
  • To post as a guest, your comment is unpublished.
    Sunny · 2 years ago
    @arul.annalect@gmail.com The below code will combine sheets from the second row, you can change the number 2 (xStart = 2) to other number for you need.

    Sub CombineForm()
    Dim xStart, xFNum, xIntCFMax, xIntRRg, xIntCRg As Integer
    Dim xCFWS, xWS As Worksheet
    Dim xObjSR As Range
    Dim xStrName As String
    On Error Resume Next
    Application.ScreenUpdating = False
    xStart = 2
    xStrName = "CombinedForm"
    Set xWS = Sheets(xStrName)
    If xWS Is Nothing Then
    xWS.Delete
    End If
    Set xCFWS = Worksheets.Add
    xCFWS.Name = xStrName

    For xFNum = 1 To Sheets.Count
    Set xWS = Sheets(xFNum)
    If xWS.Name <> xStrName Then
    xWS.Activate
    xIntRRg = xWS.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    xIntCRg = xWS.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    If xStart <= xIntRRg Then
    Set xObjSR = Range(Cells(xStart, 1), Cells(xIntRRg, xIntCRg))
    xObjSR.Select
    Selection.Copy Destination:=xCFWS.Range("A65536").End(xlUp)(2)
    End If
    End If
    Next
    Application.ScreenUpdating = True
    End Sub
  • To post as a guest, your comment is unpublished.
    arul.annalect@gmail.com · 2 years ago
    @Sunny Thank you, Sunny! This coding is working fine..

    But i want to combine all the sheets from row no: 16. Could you help us to update the coding.

    Thanks
    Arul
  • To post as a guest, your comment is unpublished.
    arul · 2 years ago
    @Sunny Thank you, Sunny!

    I want to combine the sheet from row no:16. Could you help me to update the coding.

    Thanks
    Arul
  • To post as a guest, your comment is unpublished.
    Sunny · 2 years ago
    @arul.annalect@gmail.com You can try below code, it will merge all data and skip blank rows.

    Sub CombineForm()
    Dim xI, xMax As Integer
    Dim xCWS, xWS As Worksheet
    Dim xObjRRange, xObjCRange, xObjSR As Range
    On Error Resume Next
    Sheets(1).Select
    Set xCWS = Worksheets.Add
    xCWS.Name = "Combined"
    Sheets(2).Activate
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=xCWS.Range("A1")
    For xI = 2 To Sheets.Count
    Set xWS = Sheets(xI)
    xWS.Activate
    Set xObjRRange = xWS.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
    Set xObjCRange = xWS.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
    Set xObjSR = Range(Cells(1, 1), Cells(xObjRRange.Row, xObjCRange.Column))
    xObjSR.Select
    Selection.Copy Destination:=xCWS.Range("A65536").End(xlUp)(2)
    Next
    xMax = xCWS.Range("a65536").End(3).Row
    xCWS.Range("a1:a" & xMax).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End Sub
  • To post as a guest, your comment is unpublished.
    arul.annalect@gmail.com · 2 years ago
    @arno Do we have any solution to copy the data below the blank cell?
  • To post as a guest, your comment is unpublished.
    arul.annalect@gmail.com · 2 years ago
    Hi all,

    I have used the below mentioned code, In my data some blank Rows is there for each tab. Data is not coping after the blank rows. How to combine the all data after the blank rows. Please advise.

    Sub Combine()
    Dim J As Integer
    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add
    Sheets(1).Name = "Combined"
    Sheets(2).Activate
    Range("A16").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")
    For J = 2 To Sheets.Count
    Sheets(J).Activate
    Range("A17").Select
    Selection.CurrentRegion.Select
    Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
    Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
    Next
    End Sub

    Thanks
    Arul
  • To post as a guest, your comment is unpublished.
    Bruno G. · 3 years ago
    @neno Change all the "A1" in the code to "A26". Save your data before trying this change, just in case!
  • To post as a guest, your comment is unpublished.
    neno · 3 years ago
    My headings start on row 26, the first 25 rows are occupied with the parameters I used to generate my reports, it would take a long time to delete these since there are many reports generated. Using the VBA code above, how could I configure this code to exclude the first 25 rows, capture the headings on row 26 and combine all the data under the headings (row 27 onwards) for each worksheet?
  • To post as a guest, your comment is unpublished.
    Nigah · 3 years ago
    @Tina Just save as the current workbook with a new name and delete other three worksheets which you don't want to combine, now you have only your desired two sheets for VBA code execution.
  • To post as a guest, your comment is unpublished.
    Tina · 3 years ago
    Hi.. The VBA code works fine. Thank you! But can you please help on how I can edit the code so that only 2 sheets will be combined? I have 5 sheets in my workbook but I only need to combine 2 of them.
  • To post as a guest, your comment is unpublished.
    deepak · 3 years ago
    hello everyone

    I want to merged more workbook data in one so give me suggest
  • To post as a guest, your comment is unpublished.
    · 3 years ago
    Hi everyone,

    First of all I have to tell that I have no experience with Macro (VBA Codes). However what I need is related to this. Maybe you guys could help me with it.

    I have a workbook and in this workbook there are 10 worksheets. The first 9 Sheets have the same order of the coloumns of titles and in these columns there are names, dates, percentages of Project Status, comments to Projects etc.. As I said the columns have the same order just the name of the worksheets (for different Teams in the Organisation) are different.

    In Addition to this I have to merge all the worksheets and have them in another sheet which is called "Übersicht" (Overview). However there is a different column in the sheet and it's between "Nr." and "Thema" columns (which are in A1 and A2 in all the 9 Sheets) and this different column called "Kategorie" (in A2 in Übersicht-Overwiev sheet). As this column is between These the order is like this "Nr. (A1), Kategorie (A2) and Thema (A3).....".So this category column (Kategorie) should be empty except this all the Information should be merged into this sheet. And also when there is a Change or update in any worksheet, the Information in "Übersicht" (Overview) sheet needs to update by itself. How can I do this?

    P.S.: Every sheet has different filled rows, some 30, some 13, some 5 etc. And the Teams which are responsible for the Sheets can add or delete some rows (in each row there is different Information for different Projects). This also means the number of rows can increase or decrease.

    I hope I explained it well. Thanks a lot in advance!

    I wish you merry Christmas and a happy new year!

    oduff
  • To post as a guest, your comment is unpublished.
    hk · 3 years ago
    The VBA code works fine but I want the data to be merged horizontally(side by side).
    Hope you can help.
  • To post as a guest, your comment is unpublished.
    Jeanette · 3 years ago
    THANK YOU for the VB Code. Amazing. Worked perfectly. I had 72 worksheets to combine into one. It took a second and it was done. YOU ROCK.
  • To post as a guest, your comment is unpublished.
    Yohani · 3 years ago
    Excellent code! Worked very well!
  • To post as a guest, your comment is unpublished.
    Jonas · 3 years ago
    Hello!
    I need your support. I have three sheets (A, B, C) into a worksheet. the sheet contain information on individuals.
    Sheet A: contains all individuals considered as ID with information (age, education, etc...)
    Sheets B et C: contain some individuals (ID) with information (Organisation, income, etc...)
    So I want to combine B and C to A to get all information from A,B, C together.

    Jonas
  • To post as a guest, your comment is unpublished.
    Jennifer · 3 years ago
    Thank you so very much! The code worked perfectly! I appreciate the instruction so very much!!!
  • To post as a guest, your comment is unpublished.
    Gary · 3 years ago
    Hello, this worked fine at first, but now I see that not all rows from all worksheets are appended into the combined sheet. Please help!
  • To post as a guest, your comment is unpublished.
    Suzana · 3 years ago
    Oh dear! Thank you so MUCH. Worked PERFECTLY with the Code. Had trouble and was thinking how to resolve this and then...just in a second! Thank you a lot. God bless you!
  • To post as a guest, your comment is unpublished.
    adj · 3 years ago
    This code works for the most part - however, the first line of each sheet (except for the first sheet) is not extracted into the combined sheet. Which piece of the code should be modified to ensure extraction of the first line?
  • To post as a guest, your comment is unpublished.
    mario · 3 years ago
    You rock guys!
  • To post as a guest, your comment is unpublished.
    s · 3 years ago
    You guys are the best!!! You totally saved me and I look like a super star
  • To post as a guest, your comment is unpublished.
    Daniel · 3 years ago
    THANK YOU SO MUCH!!!!!
  • To post as a guest, your comment is unpublished.
    Mohd · 3 years ago
    How to merge multiple workbooks with multiple worksheets into one workbook?
  • To post as a guest, your comment is unpublished.
    Mohd · 3 years ago
    [quote name="John"], how to merge multiple workbooks with multiple worksheets into one workbook? appriciate if you could reply.
  • To post as a guest, your comment is unpublished.
    John · 3 years ago
    This is amazing. Thank you so much!
  • To post as a guest, your comment is unpublished.
    Jens · 3 years ago
    When installed, Excel 365 gives a memory error and nothing works.
    I had to uninstall kutools to be able to work again :-(
  • To post as a guest, your comment is unpublished.
    Rich Thorpe · 3 years ago
    Thanks for the help on combining worksheets. Saved me hours of mind numbing work!
  • To post as a guest, your comment is unpublished.
    Ryan · 3 years ago
    how do i get the macro to insert column "a" and paste the name of the workbook the data came from in the added column
  • To post as a guest, your comment is unpublished.
    astu · 3 years ago
    it works so well for my case.
    million thanks for sharing!!!!