Vai al contenuto principale

Come combinare più cartelle di lavoro in una cartella di lavoro principale in Excel?

Sei mai stato bloccato quando devi combinare più cartelle di lavoro in una cartella di lavoro principale in Excel? La cosa più terribile è che le cartelle di lavoro che devi combinare contengono più fogli di lavoro. E come combinare solo i fogli di lavoro specificati di più cartelle di lavoro in una cartella di lavoro? Questo tutorial mostra diversi metodi utili per aiutarti a risolvere il problema passo dopo passo.


Combina più cartelle di lavoro in una cartella di lavoro con la funzione Sposta o Copia

Se è necessario combinare solo un paio di cartelle di lavoro, è possibile utilizzare il comando Sposta o Copia per spostare o copiare manualmente i fogli di lavoro dalla cartella di lavoro originale alla cartella di lavoro principale.

1. Apri le cartelle di lavoro che unirai in una cartella di lavoro principale.

2. Selezionare i fogli di lavoro nella cartella di lavoro originale che sposterete o copierete nella cartella di lavoro principale.

Note:

1). Puoi selezionare più fogli di lavoro non adiacenti tenendo premuto il tasto Ctrl e facendo clic sulle schede del foglio una per una.

2). Per selezionare più fogli di lavoro adiacenti, fare clic sulla prima scheda del foglio, tenere premuto il pulsante Shift chiave, quindi fare clic sulla scheda dell'ultimo foglio per selezionarli tutti.

3). Puoi fare clic con il tasto destro su qualsiasi scheda del foglio, fare clic su Seleziona tutti i fogli dal menu contestuale per selezionare tutti i fogli di lavoro nella cartella di lavoro contemporaneamente.

3. Dopo aver selezionato i fogli di lavoro necessari, fare clic con il pulsante destro del mouse sulla scheda del foglio, quindi fare clic su Sposta o copia dal menu contestuale. Vedi screenshot:

4. Quindi il file Sposta o copia si apre la finestra di dialogo, nel file Prenotare menu a discesa, selezionare la cartella di lavoro principale in cui spostare o copiare i fogli di lavoro. Seleziona mossa per terminare nel file Prima del foglio casella, seleziona il file Crea una copia casella e infine fare clic su OK pulsante.

Quindi puoi vedere i fogli di lavoro in due cartelle di lavoro combinate in una. Ripetere i passaggi precedenti per spostare i fogli di lavoro da altre cartelle di lavoro nella cartella di lavoro principale.


Combina più cartelle di lavoro o fogli di lavoro specificati in una cartella di lavoro principale con VBA

Se è necessario unire più cartelle di lavoro in una sola, è possibile applicare i seguenti codici VBA per ottenerlo rapidamente. Si prega di fare quanto segue.

1. Metti tutte le cartelle di lavoro che desideri combinare in una nella stessa directory.

2. Avvia un file Excel (questa cartella di lavoro sarà la cartella di lavoro principale).

3. premi il altro + F11 chiavi per aprire il Microsoft Visual Basic per le applicazioni finestra. Nel Microsoft Visual Basic per le applicazioni finestra, fare clic inserire > Moduli, quindi copia sotto il codice VBA nella finestra del modulo.

Codice VBA 1: unisci più cartelle di lavoro Excel in una sola

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. Il codice VBA sopra manterrà i nomi dei fogli delle cartelle di lavoro originali dopo la fusione.

2. Se si desidera distinguere quali fogli di lavoro nella cartella di lavoro principale provengono da dove dopo l'unione, applicare il codice VBA di seguito 2.

3. Se si desidera semplicemente combinare fogli di lavoro specificati delle cartelle di lavoro in una cartella di lavoro principale, il codice VBA 3 di seguito può essere d'aiuto.

Nei codici VBA, "C: \ Users \ DT168 \ Desktop \ KTE \"È il percorso della cartella. Nel codice VBA 3, "Sheet1, Sheet3"sono i fogli di lavoro specificati delle cartelle di lavoro che combinerai in una cartella di lavoro principale. Puoi modificarli in base alle tue esigenze.

Codice VBA 2: unisci le cartelle di lavoro in una (ogni foglio di lavoro verrà denominato con il prefisso del nome file originale):

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

Codice VBA 3: unisci i fogli di lavoro specificati delle cartelle di lavoro in una cartella di lavoro principale:

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. premi il F5 chiave per eseguire il codice. Quindi tutti i fogli di lavoro o fogli di lavoro specificati delle cartelle di lavoro in una determinata cartella vengono combinati contemporaneamente in una cartella di lavoro principale.


Combina facilmente più cartelle di lavoro o fogli di cartelle di lavoro specificati in una cartella di lavoro

Fortunatamente la documentazione dedicata a Combinare utilità cartella di lavoro di Kutools for Excel rende molto più semplice unire più cartelle di lavoro in una sola. Vediamo come far funzionare questa funzione combinando più cartelle di lavoro.

Prima di applicare Kutools for Excel, Per favore scaricalo e installalo prima.

1. Creare una nuova cartella di lavoro e fare clic su Kutools Plus > Combinare. Quindi viene visualizzata una finestra di dialogo per ricordarti che tutte le cartelle di lavoro combinate devono essere salvate e la funzione non può essere applicata alle cartelle di lavoro protette, fare clic su OK pulsante.

2. Nel Combina fogli di lavoro procedura guidata, selezionare Combina più fogli di lavoro da cartelle di lavoro in una cartella di lavoro opzione, quindi fare clic su Successivo pulsante. Vedi screenshot:

3. Nel Combina fogli di lavoro - Passaggio 2 di 3 finestra di dialogo, fare clic su Aggiungi > Compila il or cartella per aggiungere i file Excel che unirai in uno solo. Dopo aver aggiunto i file Excel, fare clic su Fine e scegli una cartella in cui salvare la cartella di lavoro principale. Vedi screenshot:

Ora tutte le cartelle di lavoro vengono unite in una sola.

Rispetto ai due metodi precedenti, Kutools for Excel ha i seguenti vantaggi:

  • 1) Tutte le cartelle di lavoro e i fogli di lavoro sono elencati nella finestra di dialogo;
  • 2) Per i fogli di lavoro che desideri escludere dall'unione, deselezionala semplicemente;
  • 3) I fogli di lavoro vuoti vengono esclusi automaticamente;
  • 4) Il nome del file originale verrà aggiunto come prefisso al nome del foglio dopo l'unione;
  • Per ulteriori funzioni di questa funzione, si prega di visitare qui.

  Se desideri avere una prova gratuita (30 giorni) di questa utility, fare clic per scaricarlo, quindi andare ad applicare l'operazione secondo i passaggi precedenti.


Kutools per Excel - Ti aiuta a finire il lavoro sempre in anticipo, ad avere più tempo per goderti la vita
Ti capita spesso di ritrovarti a giocare al passo con il lavoro, la mancanza di tempo da dedicare a te stesso e alla famiglia?  Kutools for Excel può aiutarti ad affrontare 80% Eccellere i puzzle e migliorare l'efficienza del lavoro dell'80%, darti più tempo per prenderti cura della famiglia e goderti la vita.
300 strumenti avanzati per 1500 scenari di lavoro, rendono il tuo lavoro molto più semplice che mai.
Non è più necessario memorizzare formule e codici VBA, da ora in poi dai una pausa al tuo cervello.
Le operazioni complicate e ripetute possono essere eseguite una sola volta in pochi secondi.
Riduci migliaia di operazioni con tastiera e mouse ogni giorno, saluta subito le malattie professionali.
Diventa un esperto di Excel in 3 minuti, ti aiuta a ottenere rapidamente un riconoscimento e una promozione di aumento di stipendio.
110,000 persone altamente efficienti e la scelta di oltre 300 aziende di fama mondiale.
Rendi i tuoi $ 39.0 più di $ 4000.0 di formazione di altri.
Prova gratuita di tutte le funzionalità per 30 giorni. Garanzia di rimborso di 60 giorni senza motivo.

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