Přejít k hlavnímu obsahu

Jak kombinovat více sešitů do jednoho hlavního sešitu v aplikaci Excel?

Už jste někdy uvízli, když musíte kombinovat více sešitů do hlavního sešitu v aplikaci Excel? Nejstrašnější věcí je, že sešity, které musíte kombinovat, obsahují několik pracovních listů. A jak kombinovat pouze zadané listy více sešitů do jednoho sešitu? Tento kurz ukazuje několik užitečných metod, které vám pomohou vyřešit problém krok za krokem.


Kombinujte více sešitů do jednoho sešitu s funkcí Přesunout nebo Kopírovat

Pokud existuje jen pár sešitů, které je třeba kombinovat, můžete pomocí příkazu Přesunout nebo Kopírovat ručně přesunout nebo zkopírovat listy z původního sešitu do hlavního sešitu.

1. Otevřete sešity, které sloučíte do hlavního sešitu.

2. Vyberte listy v původním sešitu, které přesunete nebo zkopírujete do hlavního sešitu.

Poznámky:

1). Můžete vybrat několik nesousedících listů s přidržením Ctrl klíč a klikání na záložky listu jeden po druhém.

2). Chcete-li vybrat více sousedních listů, klikněte na kartu prvního listu a podržte směna klíč a poté kliknutím na kartu poslední list vyberte všechny.

3). Můžete kliknout pravým tlačítkem na libovolnou kartu listu a kliknout na Vyberte všechny listy z místní nabídky vyberte všechny listy v sešitu současně.

3. Po výběru potřebných listů klikněte pravým tlačítkem na kartu listu a poté klikněte na Přesunout nebo Kopírovat z kontextové nabídky. Viz snímek obrazovky:

4. Potom Přesunout nebo Kopírovat objeví se dialogové okno Zarezervovat z rozevíracího seznamu vyberte hlavní sešit, do kterého přesunete nebo zkopírujete listy. Vyberte přesun do konce v Před listem zaškrtněte políčko Vytvořte kopii a nakonec klikněte na OK .

Pak můžete vidět listy ve dvou sešitech spojených do jednoho. Chcete-li přesunout listy z jiných sešitů do hlavního sešitu, opakujte výše uvedené kroky.


Zkombinujte více sešitů nebo určených listů sešitů do hlavního sešitu pomocí VBA

Pokud existuje více sešitů, které je třeba sloučit do jednoho, můžete rychle dosáhnout následujících kódů VBA. Postupujte prosím následovně.

1. Vložte všechny sešity, které chcete zkombinovat, do jednoho ve stejném adresáři.

2. Spusťte soubor Excel (tento sešit bude hlavním sešitem).

3. zmáčkni Další + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno. V Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko Vložit > Modul, potom zkopírujte níže uvedený kód VBA do okna modulu.

Kód VBA 1: Sloučení více sešitů aplikace Excel do jednoho

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
	

Poznámky:

1. Výše ​​uvedený kód VBA zachová po sloučení názvy listů původních sešitů.

2. Pokud chcete po sloučení rozlišit, které listy v hlavním sešitu pocházejí, použijte níže uvedený kód VBA 2.

3. Pokud chcete pouze kombinovat určené listy sešitů do hlavního sešitu, může vám pomoci následující kód VBA 3.

V kódech VBA: „C: \ Users \ DT168 \ Desktop \ KTE \„Je cesta ke složce. V kódu VBA 3 „List1, List3„jsou zadané listy sešitů, které zkombinujete do hlavního sešitu. Můžete je změnit podle svých potřeb.

Kód VBA 2: Sloučit sešity do jednoho (každý list bude pojmenován předponou původního názvu souboru):

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

Kód VBA 3: Sloučit určené listy sešitů do hlavního sešitu:

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. zmáčkni F5 klíč ke spuštění kódu. Poté jsou všechny listy nebo určené listy sešitů v určité složce sloučeny do hlavního sešitu najednou.


Snadno kombinujte více sešitů nebo určených listů sešitů do jednoho sešitu

Naštěstí, Kombinovat sešit užitečnost Kutools pro Excel usnadňuje sloučení více sešitů do jednoho. Podívejme se, jak tuto funkci získat kombinací více sešitů.

Před aplikací Kutools pro Excel, Prosím nejprve si jej stáhněte a nainstalujte.

1. Vytvořte nový sešit a klikněte na Kutools Plus > Kombinovat. Poté se zobrazí dialogové okno, které vám připomene, že by měly být uloženy všechny kombinované sešity a funkci nelze použít na chráněné sešity, klikněte na OK .

2. V Zkombinujte pracovní listy průvodce, vyberte Zkombinujte více pracovních listů ze sešitů do jednoho sešitu možnost a poté klikněte na další knoflík. Viz screenshot:

3. V Zkombinujte pracovní listy - krok 2 ze 3 dialogové okno, klepněte na tlačítko přidat > Soubor or Desky přidáte soubory Excel, které sloučíte do jednoho. Po přidání souborů aplikace Excel klikněte na úprava tlačítko a vyberte složku pro uložení hlavního sešitu. Viz screenshot:

Nyní jsou všechny sešity sloučeny do jednoho.

Ve srovnání s výše uvedenými dvěma metodami Kutools pro Excel má následující výhody:

  • 1) Všechny sešity a listy jsou uvedeny v dialogovém okně;
  • 2) U listů, které chcete vyloučit ze slučování, jednoduše zrušte jejich zaškrtnutí;
  • 3) Prázdné listy jsou automaticky vyloučeny;
  • 4) Původní název souboru bude po sloučení přidán jako předpona k názvu listu;
  • Pro více funkcí této funkce prosím navštivte zde.

  Pokud chcete mít bezplatnou (30denní) zkušební verzi tohoto nástroje, kliknutím jej stáhněte, a poté přejděte k použití operace podle výše uvedených kroků.


Kutools pro Excel - Pomůže vám vždy dokončit práci před časem, mít více času na radost ze života
Stává se vám často, že hrajete s prací, nedostatkem času pro sebe a rodinu?  Kutools pro Excel vám může pomoci vypořádat se s 80% Excel hádanky a zlepšit 80% efektivitu práce, vám více času na péči o rodinu a užívat si života.
300 pokročilých nástrojů pro 1500 pracovních scénářů, usnadní vám práci mnohem více než kdy dříve.
Už si nemusíte pamatovat vzorce a kódy VBA, dejte svému mozku odpočinout od nynějška.
Složité a opakované operace lze provést jednorázovým zpracováním během několika sekund.
Omezte každý den tisíce operací klávesnicí a myší, rozloučte se s nemocemi z povolání hned teď.
Staňte se odborníkem na Excel za 3 minuty, pomozte rychle získat uznání a povýšení na zvýšení platu.
110,000 300 vysoce efektivních lidí a více než XNUMX světově proslulých společností.
Udělejte ze svých $ 39.0 v hodnotě více než $ 4000.0 školení ostatních.
Plná bezplatná zkušební verze na 30 dní. 60denní záruka vrácení peněz bez udání důvodu.

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