Preskoči na glavno vsebino

Kako združiti več delovnih zvezkov v en glavni delovni zvezek v Excelu?

Ste se kdaj zataknili, ko morate združiti več delovnih zvezkov v glavni delovni zvezek v Excelu? Najbolj grozno je, da delovni zvezki, ki jih morate združiti, vsebujejo več delovnih listov. In kako združiti samo določene delovne liste več delovnih zvezkov v en delovni zvezek? Ta vadnica prikazuje več uporabnih metod, ki vam pomagajo postopoma rešiti težavo.


Več delovnih zvezkov združite v en delovni zvezek s funkcijo premikanja ali kopiranja

Če je treba združiti le nekaj delovnih zvezkov, lahko z ukazom Premakni ali Kopiraj ročno premaknete ali kopirate delovne liste iz prvotnega v glavni delovni zvezek.

1. Odprite delovne zvezke, ki jih boste združili v glavni delovni zvezek.

2. V izvirnem delovnem zvezku izberite delovne liste, ki jih boste premaknili ali kopirali v glavni delovni zvezek.

Opombe:

1). Izberete lahko več sosednjih delovnih listov z držanjem gumba Ctrl in kliknete zavihke lista enega za drugim.

2). Za izbiro več sosednjih delovnih listov kliknite na zavihek prvega lista in pridržite Shift in kliknite zadnji jeziček lista, da jih izberete.

3). Z desno miškino tipko lahko kliknete kateri koli zavihek lista in kliknete Izberite Vse liste v kontekstnem meniju, da hkrati izberete vse delovne liste v delovnem zvezku.

3. Ko izberete potrebne delovne liste, z desno miškino tipko kliknite jeziček lista in nato kliknite Premakni ali Kopiraj iz kontekstnega menija. Oglejte si posnetek zaslona:

4. Nato Premakni ali Kopiraj pokaže se pogovorno okno v Rezervirati v spustnem meniju izberite glavni delovni zvezek, v katerega boste premaknili ali kopirali delovne liste. Izberite premakni za konec v Pred listom potrdite polje Ustvari kopijo in na koncu kliknite OK gumb.

Nato si lahko ogledate delovne liste v dveh delovnih zvezkih, združenih v enega. Ponovite zgornje korake za premik delovnih listov iz drugih delovnih zvezkov v glavni delovni zvezek.


Kombinirajte več delovnih zvezkov ali določenih listov delovnih zvezkov v glavni delovni zvezek z VBA

Če je treba več delovnih zvezkov združiti v enega, lahko za hitro doseganje uporabite naslednje kode VBA. Naredite naslednje.

1. Vse delovne zvezke, ki jih želite združiti, shranite v isti imenik.

2. Zaženite datoteko Excel (ta delovni zvezek bo glavni delovni zvezek).

3. Pritisnite druga + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno. V Microsoft Visual Basic za aplikacije okno, kliknite Vstavi > Moduli, nato kopirajte spodnjo kodo VBA v okno modula.

Koda VBA 1: združite več Excelovih delovnih zvezkov v enega

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
	

Opombe:

1. Zgornja koda VBA bo po združitvi ohranila imena listov izvirnih delovnih zvezkov.

2. Če želite razlikovati, kateri delovni listi v glavnem delovnem zvezku so prišli po združitvi, uporabite spodnjo kodo VBA 2.

3. Če želite zgolj združiti določene delovne liste delovnih zvezkov v glavni delovni zvezek, vam lahko pomaga spodnja koda VBA 3.

V kodah VBA »C: \ Users \ DT168 \ Desktop \ KTE \"Je pot do mape. V kodi VBA 3 "List1, List3"je določen delovni list delovnih zvezkov, ki ga boste združili v glavni delovni zvezek. Lahko jih spremenite glede na svoje potrebe.

Koda VBA 2: Združi delovne zvezke v enega (vsak delovni list bo poimenovan s predpono izvirnega imena datoteke):

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

Koda VBA 3: Združi določene delovne liste delovnih zvezkov v glavni delovni zvezek:

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. Pritisnite F5 tipko za zagon kode. Nato se vsi delovni listi ali določeni delovni listi delovnih zvezkov v določeni mapi naenkrat združijo v glavni delovni zvezek.


Preprosto združite več delovnih zvezkov ali določenih listov delovnih zvezkov v en delovni zvezek

Na srečo, na Združite pripomoček za Kutools za Excel veliko lažje združi več delovnih zvezkov v enega. Poglejmo, kako doseči, da ta funkcija deluje v kombinaciji več delovnih zvezkov.

Pred vložitvijo vloge Kutools za ExcelProsim najprej ga prenesite in namestite.

1. Ustvarite nov delovni zvezek in kliknite Kutools Plus > Združite. Nato se prikaže pogovorno okno, ki vas opozori, da je treba shraniti vse kombinirane delovne zvezke in funkcije ni mogoče uporabiti za zaščitene delovne zvezke, kliknite OK gumb.

2. V Ljubljani Združite delovne liste čarovnika, izberite Več delovnih listov iz delovnih zvezkov združite v en delovni zvezek in nato kliknite Naslednji . Oglejte si posnetek zaslona:

3. V Ljubljani Združite delovne liste - 2. korak od 3 pogovorno okno, kliknite na Dodaj > file or Mapa če želite dodati Excelove datoteke, jih boste združili v eno. Ko dodate datoteke Excel, kliknite Konec in izberite mapo, v katero želite shraniti glavni delovni zvezek. Oglejte si posnetek zaslona:

Zdaj so vsi delovni zvezki združeni v enega.

V primerjavi z zgornjima dvema metodama Kutools za Excel ima naslednje prednosti:

  • 1) V pogovornem oknu so navedeni vsi delovni zvezki in delovni listi;
  • 2) Za delovne liste, ki jih želite izključiti iz spajanja, samo počistite;
  • 3) Prazni delovni listi so samodejno izključeni;
  • 4) Izvirno ime datoteke bo po združitvi dodano kot predpona imenu lista;
  • Za več funkcij te funkcije: prosim obiščite tukaj.

  Če želite imeti brezplačno (30-dnevno) preskusno različico tega pripomočka, kliknite, če ga želite prenestiin nato nadaljujte z uporabo postopka v skladu z zgornjimi koraki.


Kutools za Excel - Pomaga vam, da vedno končate delo pred časom, imejte več časa za uživanje v življenju
Se pogosto znajdete v igri za dohitevanje dela, pomanjkanje časa zase in za družino?  Kutools za Excel vam lahko pomaga pri soočanju 80% Excel sestavljajo uganke in izboljšajo 80-odstotno delovno učinkovitost, dajo vam več časa za skrb za družino in uživanje v življenju.
300 naprednih orodij za 1500 delovnih scenarijev vam olajša delo kot kdaj koli prej.
Ni vam več treba zapomniti formul in kod VBA, odslej si privoščite počitek v možganih.
Zapletene in ponavljajoče se operacije je mogoče enkrat obdelati v nekaj sekundah.
Vsak dan zmanjšajte na tisoče operacij tipkovnice in miške, zdaj se poslovite od poklicnih bolezni.
Postanite strokovnjak za Excel v 3 minutah, vam pomaga hitro prepoznati in napredovanje za dvig plače.
Izbira 110,000 visoko učinkovitih ljudi in 300+ svetovno priznanih podjetij.
Naj bodo vaši 39.0 USD vredni več kot 4000.0 USD usposabljanja drugih.
30-dnevni brezplačni preizkus vseh funkcij. 60-dnevna garancija vračila denarja brez razloga.

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