Hoppa till huvudinnehåll

Hur kombinerar jag flera arbetsböcker i en huvudarbetsbok i Excel?

Har du någonsin fastnat när du måste kombinera flera arbetsböcker till en huvudarbetsbok i Excel? Det mest hemska är att arbetsböckerna du behöver kombinera innehåller flera kalkylblad. Och hur man bara kombinerar de angivna kalkylbladen i flera arbetsböcker i en arbetsbok? Denna handledning visar flera användbara metoder som hjälper dig att lösa problemet steg för steg.


Kombinera flera arbetsböcker i en arbetsbok med funktionen Flytta eller Kopiera

Om det bara finns ett par arbetsböcker som behöver kombineras kan du använda kommandot Flytta eller Kopiera för att manuellt flytta eller kopiera kalkylblad från den ursprungliga arbetsboken till huvudarbetsboken.

1. Öppna arbetsböckerna som du kommer att slå samman i en huvudarbetsbok.

2. Välj kalkylblad i den ursprungliga arbetsboken som du ska flytta eller kopiera till huvudarbetsboken.

Anmärkningar:

1). Du kan välja flera icke-intilliggande kalkylblad genom att hålla ned ctrl och klicka på arkflikarna en efter en.

2). För att välja flera intilliggande kalkylblad, klicka på den första arkfliken, håll ned shift och klicka sedan på den sista arkfliken för att markera dem alla.

3). Du kan högerklicka på valfri arkflik, klicka på Välj alla skivor från snabbmenyn för att välja alla kalkylblad i arbetsboken samtidigt.

3. När du har valt de nödvändiga kalkylarken, högerklickar du på arkfliken och klickar sedan på Flytta eller Kopiera från snabbmenyn. Se skärmdump:

4. Sedan Flytta eller Kopiera dialogrutan dyker upp i Att boka rullgardinsmeny, välj den huvudarbetsbok du ska flytta eller kopiera kalkylblad till. Välj flytta för att avsluta i Före ark kryssa i rutan Skapa en kopia och slutligen klicka på OK knapp.

Då kan du se kalkylblad i två arbetsböcker kombinerade till en. Upprepa stegen ovan för att flytta kalkylblad från andra arbetsböcker till huvudarbetsboken.


Kombinera flera arbetsböcker eller specifika arbetsböcker till en huvudarbetsbok med VBA

Om det finns flera arbetsböcker måste slås samman till en, kan du använda följande VBA-koder för att snabbt uppnå det. Gör så här.

1. Lägg alla arbetsböcker som du vill kombinera i en under samma katalog.

2. Starta en Excel-fil (den här arbetsboken blir huvudarbetsboken).

3. tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, kopiera sedan VBA-koden nedan till modulfönstret.

VBA-kod 1: Slå ihop flera Excel-arbetsböcker till en

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
	

Anmärkningar:

1. Ovanstående VBA-kod behåller arknamnen på de ursprungliga arbetsböckerna efter sammanslagningen.

2. Om du vill skilja på vilka kalkylblad i huvudarbetsboken som kommer från var efter sammanslagning, använd VBA-kod 2 nedan.

3. Om du bara vill kombinera specificerade kalkylblad för arbetsböckerna i en huvudarbetsbok kan nedanstående VBA-kod 3 hjälpa till.

I VBA-koder, “C: \ Användare \ DT168 \ Desktop \ KTE \”Är mappvägen. I VBA-kod 3, "Sheet1, Sheet3"är de angivna kalkylbladen för arbetsböckerna som du kommer att kombinera till en huvudarbetsbok. Du kan ändra dem baserat på dina behov.

VBA-kod 2: Slå samman arbetsböcker till en (varje kalkylblad kommer att namnges med prefix för sitt ursprungliga filnamn):

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-kod 3: Sammanfoga angivna arbetsblad för arbetsböcker till en huvudarbetsbok:

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. tryck på F5 för att köra koden. Sedan kombineras alla kalkylblad eller specificerade kalkylblad för arbetsböckerna i den specifika mappen till en huvudarbetsbok samtidigt.


Kombinera enkelt flera arbetsböcker eller specifika arbetsböcker till en arbetsbok

Lyckligtvis, den Kombinera arbetsbokens verktyg för Kutools för Excel gör det mycket lättare att slå samman flera arbetsböcker till en. Låt oss se hur vi får den här funktionen att kombinera flera arbetsböcker.

Innan du ansöker Kutools för ExcelBer ladda ner och installera det först.

1. Skapa en ny arbetsbok och klicka Kutools Plus > Kombinera. Sedan dyker en dialog upp för att påminna dig om att alla kombinerade arbetsböcker ska sparas och funktionen inte kan tillämpas på skyddade arbetsböcker, klicka på OK knapp.

2. I Kombinera arbetsblad guiden, välj Kombinera flera kalkylblad från arbetsböcker till en arbetsbok och klicka sedan på Nästa knapp. Se skärmdump:

3. I Kombinera arbetsblad - Steg 2 av 3 dialogrutan, klicka på Lägg till > Fil or mapp för att lägga till Excel-filer som du kommer att slå samman i en. När du har lagt till Excel-filer klickar du på Finish och välj en mapp för att spara huvudarbetsboken. Se skärmdump:

Nu slås alla arbetsböcker samman till en.

Jämfört med ovanstående två metoder, Kutools för Excel har följande fördelar:

  • 1) Alla arbetsböcker och kalkylblad listas i dialogrutan.
  • 2) För kalkylblad som du vill utesluta från sammanslagning, avmarkera det bara.
  • 3) Tomma kalkylblad utesluts automatiskt.
  • 4) Det ursprungliga filnamnet läggs till som prefix till arknamnet efter sammanslagning.
  • För fler funktioner för den här funktionen, besök här.

  Om du vill ha en gratis provperiod (30 dagar) av det här verktyget, klicka för att ladda ner den, och gå sedan till för att tillämpa operationen enligt ovanstående steg.


Kutools för Excel - Hjälper dig att alltid slutföra arbetet före tiden, ha mer tid att njuta av livet
Kommer du ofta att spela inhämtning med arbete, brist på tid att spendera för dig själv och familjen?  Kutools för Excel kan hjälpa dig att hantera 80% Excel pussel och förbättra 80% arbetseffektivitet, ger dig mer tid att ta hand om familjen och njuta av livet.
300 avancerade verktyg för 1500 arbetsscenarier, gör ditt jobb så mycket enklare än någonsin.
Behöver inte längre memorera formler och VBA-koder, ge din hjärna vila från och med nu.
Komplicerade och upprepade operationer kan göras en engångsbehandling på några sekunder.
Minska tusentals tangentbord och musoperationer varje dag, säg adjö till yrkessjukdomar nu.
Bli en Excel-expert på tre minuter, hjälp dig snabbt att bli erkänd och en löneförhöjning.
110,000 300 mycket effektiva människor och XNUMX+ världsberömda företags val.
Gör din $ 39.0 värt mer än $ 4000.0 utbildning av andra.
Fullständig gratis provperiod i 30 dagar. 60-dagars pengarna-tillbaka-garanti utan anledning.

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