Salt la conținutul principal

Cum se combină mai multe registre de lucru într-un singur registru de lucru principal în Excel?

Ați fost vreodată blocați când trebuie să combinați mai multe registre de lucru într-un registru de lucru master în Excel? Cel mai teribil lucru este că registrele de lucru pe care trebuie să le combinați conțin mai multe foi de lucru. Și cum să combinați doar foile de lucru specificate pentru mai multe registre de lucru într-un singur registru de lucru? Acest tutorial demonstrează mai multe metode utile pentru a vă ajuta să rezolvați pașii cu pași.


Combinați mai multe registre de lucru într-un singur registru de lucru cu funcția Mutare sau Copiere

Dacă trebuie combinate doar câteva registre de lucru, puteți utiliza comanda Mutare sau Copiere pentru a muta sau copia manual foi de lucru din registrul de lucru original în registrul de lucru principal.

1. Deschideți registrele de lucru pe care le veți îmbina într-un registru principal.

2. Selectați foile de lucru din registrul de lucru original pe care îl veți muta sau copia în registrul de lucru principal.

note:

1). Puteți selecta mai multe foi de lucru neadiacente, ținând apăsat butonul Ctrl tasta și făcând clic pe filele foii unul câte unul.

2). Pentru a selecta mai multe foi de lucru adiacente, vă rugăm să faceți clic pe prima filă de foi, țineți apăsat butonul Schimba , apoi faceți clic pe ultima filă a foii pentru a le selecta pe toate.

3). Puteți face clic dreapta pe orice filă de foaie, faceți clic pe Selectați Toate foile din meniul contextual pentru a selecta toate foile de lucru din registrul de lucru în același timp.

3. După selectarea foilor de lucru necesare, faceți clic dreapta pe fila foaie, apoi faceți clic pe Mutați sau copiați din meniul contextual. Vedeți captura de ecran:

4. Apoi Mutați sau copiați apare fereastra de dialog, în A rezerva derulant, selectați registrul de lucru principal în care veți muta sau copiați foile de lucru. Selectați mutare pentru a termina în Înainte de foaie , bifați caseta Creați o copie , apoi faceți clic pe butonul OK butonul.

Apoi, puteți vedea foi de lucru în două registre de lucru combinate într-una. Vă rugăm să repetați pașii de mai sus pentru a muta foile de lucru din alte registre de lucru în registrul de lucru principal.


Combinați mai multe registre de lucru sau foi de cărți de lucru specificate într-un registru de lucru principal cu VBA

Dacă există mai multe registre de lucru care trebuie îmbinate într-unul singur, puteți aplica următoarele coduri VBA pentru a le realiza rapid. Vă rugăm să faceți următoarele.

1. Puneți toate registrele de lucru pe care doriți să le combinați într-unul sub același director.

2. Lansați un fișier Excel (acest registru de lucru va fi registrul de lucru principal).

3. apasă pe Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră. În Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Module, apoi copiați mai jos codul VBA în fereastra Module.

Cod VBA 1: îmbinați mai multe registre de lucru Excel într-unul singur

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
	

note:

1. Codul VBA de mai sus va păstra numele foilor registrelor de lucru originale după îmbinare.

2. Dacă doriți să faceți distincția dintre foile de lucru din registrul de lucru principal de unde provin după îmbinare, vă rugăm să aplicați codul VBA 2 de mai jos.

3. Dacă doriți doar să combinați foile de lucru specificate ale registrelor de lucru într-un registru de lucru principal, codul VBA 3 de mai jos vă poate ajuta.

În codurile VBA, „C: \ Users \ DT168 \ Desktop \ KTE \”Este calea folderului. În codul VBA 3, „Sheet1, Sheet3"este fișele de lucru specificate ale registrelor de lucru pe care le veți combina cu un registru de lucru principal. Puteți să le modificați în funcție de nevoile dvs.

Cod VBA 2: Îmbinați registrele de lucru într-una (fiecare foaie de lucru va fi denumită cu prefixul numelui său original de fișier):

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

Cod VBA 3: Combinați foile de lucru specificate ale registrelor de lucru într-un registru de lucru principal:

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. apasă pe F5 tasta pentru a rula codul. Apoi, toate foile de lucru sau foile de lucru specificate ale registrelor de lucru din anumite dosare sunt combinate într-un registru de lucru principal simultan.


Combinați cu ușurință mai multe registre de lucru sau foi de cărți de lucru specificate într-un singur registru de lucru

Din fericire, Combina utilitar registru de lucru al Kutools pentru Excel face mult mai ușoară îmbinarea mai multor registre de lucru într-unul singur. Să vedem cum să funcționăm această funcție în combinarea mai multor registre de lucru.

Înainte de a aplica Kutools pentru Excel, Vă rugăm să descărcați-l și instalați-l mai întâi.

1. Creați un nou registru de lucru și faceți clic pe Kutools Plus > Combina. Apoi apare o fereastră de dialog pentru a vă reaminti că toate registrele de lucru combinate ar trebui să fie salvate și caracteristica nu poate fi aplicată registrelor de lucru protejate, faceți clic pe OK butonul.

2. În Combinați foi de lucru vrăjitor, selectați Combinați mai multe foi de lucru din registrele de lucru într-un singur registru de lucru , apoi faceți clic pe Pagina Următoare → buton. Vedeți captura de ecran:

3. În Combinați foi de lucru - Pasul 2 din 3 , faceți clic pe Adăuga > Fișier or Dosar pentru a adăuga fișierele Excel veți fuziona într-unul singur. După adăugarea fișierelor Excel, faceți clic pe finalizarea și alegeți un folder pentru a salva registrul de lucru principal. Vedeți captura de ecran:

Acum toate registrele de lucru sunt îmbinate într-unul singur.

Comparativ cu cele două metode de mai sus, Kutools pentru Excel are următoarele avantaje:

  • 1) Toate registrele de lucru și foile de lucru sunt listate în caseta de dialog;
  • 2) Pentru foile de lucru pe care doriți să le excludeți de la îmbinare, debifați-le;
  • 3) Fișele de lucru goale sunt excluse automat;
  • 4) Numele fișierului original va fi adăugat ca prefix la numele foii după îmbinare;
  • Pentru mai multe funcții ale acestei funcții, vă rugăm să vizitați aici.

  Dacă doriți să aveți o perioadă de încercare gratuită (30 de zile) a acestui utilitar, vă rugăm să faceți clic pentru a-l descărca, și apoi mergeți pentru a aplica operația conform pașilor de mai sus.


Kutools pentru Excel - Vă ajută să terminați întotdeauna munca înainte de timp, să aveți mai mult timp să vă bucurați de viață
Te găsești adesea jucându-te la curent cu munca, lipsa de timp pe care să-l petreci pentru tine și pentru familie?  Kutools pentru Excel te poate ajuta să faci față 80% Excel puzzle și îmbunătăți eficiența muncii cu 80%, vă oferă mai mult timp pentru a vă ocupa de familie și a vă bucura de viață.
300 de instrumente avansate pentru 1500 de scenarii de lucru, vă fac munca mult mai ușoară ca niciodată.
Nu mai aveți nevoie de memorarea formulelor și codurilor VBA, lăsați-vă creierului să vă odihniți de acum înainte.
Operațiile complicate și repetate pot fi efectuate o procesare unică în câteva secunde.
Reduceți mii de operații de la tastatură și mouse în fiecare zi, spuneți adio acum bolilor profesionale.
Deveniți un expert Excel în 3 minute, vă ajută să vă recunoașteți rapid și să promovați o creștere a salariilor.
110,000 de oameni foarte eficienți și peste 300 de companii de renume mondial la alegere.
Faceți ca 39.0 USD să fie mai în valoare de peste 4000.0 USD pentru antrenamentul altora.
Încercare gratuită completă de 30 de zile. Garanție de rambursare de 60 de zile fără motiv.

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