Ga naar hoofdinhoud

Hoe combineer je meerdere werkmappen in één hoofdwerkmap in Excel?

Ben je ooit vastgelopen wanneer je meerdere werkmappen moet combineren tot een hoofdwerkmap in Excel? Het ergste is dat de werkmappen die u moet combineren, meerdere werkbladen bevatten. En hoe combineer je alleen de opgegeven werkbladen van meerdere werkmappen in één werkmap? In deze zelfstudie worden verschillende handige methoden gedemonstreerd waarmee u het probleem stap voor stap kunt oplossen.


Combineer meerdere werkmappen in één werkmap met de functie Verplaatsen of Kopiëren

Als er slechts een paar werkmappen moeten worden gecombineerd, kunt u de opdracht Verplaatsen of Kopiëren gebruiken om werkbladen handmatig van de originele werkmap naar de hoofdwerkmap te verplaatsen of te kopiëren.

1. Open de werkmappen die u wilt samenvoegen tot een hoofdwerkmap.

2. Selecteer de werkbladen in de originele werkmap die u naar de hoofdwerkmap wilt verplaatsen of kopiëren.

Opmerkingen:

1). U kunt meerdere niet-aangrenzende werkbladen selecteren door de Ctrl toets en klik één voor één op de bladtabs.

2). Om meerdere aangrenzende werkbladen te selecteren, klikt u op de eerste bladtab, houdt u de Shift key en klik vervolgens op de laatste bladtab om ze allemaal te selecteren.

3). U kunt met de rechtermuisknop op een bladtab klikken, klik op Selecteer Alle bladen vanuit het contextmenu om alle werkbladen in de werkmap tegelijkertijd te selecteren.

3. Nadat u de benodigde werkbladen heeft geselecteerd, klikt u met de rechtermuisknop op de bladtab en klikt u vervolgens op Verplaatsen of kopiëren vanuit het contextmenu. Zie screenshot:

4. Vervolgens de Verplaatsen of kopiëren dialoogvenster verschijnt in het Boeken in de vervolgkeuzelijst, selecteert u de hoofdwerkmap waarnaar u de werkbladen wilt verplaatsen of kopiëren. Selecteer verplaatsen om te eindigen in het Voor blad vakje, vink het Maak een kopie vak en klik ten slotte op het OK knop.

Vervolgens kunt u werkbladen in twee werkmappen in één gecombineerd zien. Herhaal de bovenstaande stappen om werkbladen van andere werkmappen naar de hoofdwerkmap te verplaatsen.


Combineer meerdere werkmappen of gespecificeerde werkbladen tot een hoofdwerkmap met VBA

Als er meerdere werkmappen moeten worden samengevoegd tot één, kunt u de volgende VBA-codes toepassen om dit snel te bereiken. Ga als volgt te werk.

1. Zet alle werkmappen die u wilt combineren in één map onder dezelfde directory.

2. Start een Excel-bestand (deze werkmap wordt de hoofdwerkmap).

3. druk de anders + F11 toetsen om de te openen Microsoft Visual Basic voor applicaties venster. In de Microsoft Visual Basic voor applicaties venster klikt Invoegen > Moduleen kopieer vervolgens de VBA-code naar het modulevenster.

VBA-code 1: voeg meerdere Excel-werkmappen samen tot één

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
	

Opmerkingen:

1. De bovenstaande VBA-code behoudt de bladnamen van de originele werkmappen na het samenvoegen.

2. Als u na het samenvoegen wilt onderscheiden welke werkbladen in de hoofdwerkmap vandaan komen, past u de onderstaande VBA-code 2 toe.

3. Als u alleen gespecificeerde werkbladen van de werkmappen wilt combineren tot een hoofdwerkmap, kan de onderstaande VBA-code 3 helpen.

In VBA-codes, "C: \ Users \ DT168 \ Desktop \ KTE \”Is het mappad. In de VBA-code 3, "Blad1, Blad3"zijn de gespecificeerde werkbladen van de werkmappen die u wilt combineren tot een hoofdwerkmap. U kunt ze wijzigen op basis van uw behoeften.

VBA-code 2: werkmappen samenvoegen tot één (elk werkblad krijgt een naam met het voorvoegsel van de oorspronkelijke bestandsnaam):

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-code 3: gespecificeerde werkbladen van werkmappen samenvoegen tot een hoofdwerkmap:

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. druk de F5 sleutel om de code uit te voeren. Vervolgens worden alle werkbladen of gespecificeerde werkbladen van de werkmappen in de bepaalde map in één keer gecombineerd tot een hoofdwerkmap.


Combineer eenvoudig meerdere werkmappen of gespecificeerde werkbladen in één werkmap

Gelukkig is de Combineren werkmap hulpprogramma van Kutools for Excel maakt het veel gemakkelijker om meerdere werkmappen samen te voegen tot één. Laten we eens kijken hoe we deze functie kunnen laten werken door meerdere werkmappen te combineren.

Voor het aanvragen Kutools for Excel, Dan kunt u download en installeer het eerst.

1. Maak een nieuwe werkmap en klik op Koetools Plus > Combineren. Vervolgens verschijnt er een dialoogvenster om u eraan te herinneren dat alle gecombineerde werkmappen moeten worden opgeslagen en dat de functie niet kan worden toegepast op beschermde werkmappen.Klik op de OK knop.

2. In de Combineer werkbladen wizard, selecteer Combineer meerdere werkbladen uit werkmappen in één werkmap optie en klik vervolgens op het Volgende knop. Zie screenshot:

3. In de Combineer werkbladen - Stap 2 van 3 dialoogvenster, klik op de Toevoegen > Dien in or Map om de Excel-bestanden toe te voegen die u tot één samenvoegt. Klik na het toevoegen van de Excel-bestanden op het Finish en kies een map om de hoofdwerkmap op te slaan. Zie screenshot:

Nu zijn alle werkmappen samengevoegd tot één.

Vergeleken met de bovenstaande twee methoden, Kutools for Excel heeft de volgende voordelen:

  • 1) Alle werkmappen en werkbladen worden weergegeven in het dialoogvenster;
  • 2) Voor de werkbladen die u niet wilt samenvoegen, schakelt u het vinkje uit;
  • 3) Lege werkbladen worden automatisch uitgesloten;
  • 4) De originele bestandsnaam wordt na het samenvoegen als voorvoegsel aan de bladnaam toegevoegd;
  • Voor meer functies van deze functie, bezoek hier.

  Als u een gratis proefperiode (30 dagen) van dit hulpprogramma wilt, klik om het te downloaden, en ga vervolgens de bewerking toepassen volgens de bovenstaande stappen.


Kutools voor Excel - Helpt u uw werk altijd op tijd af te werken, meer tijd te hebben om van het leven te genieten
Vind je jezelf vaak een inhaalslag met werk, gebrek aan tijd om voor jezelf en je gezin te besteden?  Kutools for Excel kan je helpen ermee om te gaan 80% Excel-puzzels en verbetering van 80% werkefficiëntie, geeft u meer tijd om voor het gezin te zorgen en van het leven te genieten.
300 geavanceerde tools voor 1500 werkscenario's maken uw werk zoveel gemakkelijker dan ooit.
U hoeft geen formules en VBA-codes meer te onthouden, geef uw hersenen vanaf nu rust.
Ingewikkelde en herhaalde bewerkingen kunnen binnen enkele seconden een eenmalige verwerking worden uitgevoerd.
Verminder elke dag duizenden toetsenbord- en muisbewerkingen, zeg nu vaarwel tegen beroepsziekten.
Word Excel-expert in 3 minuten, help u snel herkend te worden en maak een promotie voor loonsverhoging.
110,000 zeer effectieve mensen en meer dan 300 keuze van wereldberoemde bedrijven.
Maak uw $ 39.0 meer waard dan $ 4000.0 training van anderen.
Gratis proefperiode van 30 dagen met volledige functionaliteit. 60 dagen geld-terug-garantie zonder reden.

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