Note: The other languages of the website are Google-translated. Back to English

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 spostamento 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 > Modulo, 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 Successiva 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 vuoi avere una prova gratuita (30-day) di questa utilità, 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 con funzionalità complete 30-giorno. Garanzia di rimborso di 60 giorni senza motivo.

Commenti (146)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Ciao Plz aiutami a questa condizione di seguito. Ho una cartella di lavoro diversa che ha più di 5 fogli di lavoro ciascuno in un percorso diverso. Ho bisogno di consolidare tutti i fogli di lavoro da una cartella di lavoro diversa in un'unica cartella di lavoro. Qualcuno può aiutarmi a risolvere con macro.TIA!
Questo commento è stato fatto dal moderatore sul sito
[quote]Ciao, per favore, aiutami a risolvere questa condizione. Ho una cartella di lavoro diversa che ha più di 5 fogli di lavoro ciascuno in un percorso diverso. Ho bisogno di consolidare tutti i fogli di lavoro da una cartella di lavoro diversa in un'unica cartella di lavoro. Qualcuno può aiutarmi a risolvere con macro.TIA!Di A. Karthi[/quote] Vai a scaricare e installare Kutools per Excel, puoi farlo rapidamente. Ma se vuoi usare un VBA, potrebbe essere troppo complicato. Per ulteriori informazioni su come farlo, visitare:http://www.extendoffice.com/product/kutools-for-excel/excel-combine-worksheets-into-one.html
Questo commento è stato fatto dal moderatore sul sito
KUTOOLS Ottima soluzione. Ho bisogno di un altro aiuto quando creo la cartella di lavoro principale, quindi il colore della cella del foglio di lavoro viene modificato dal foglio di lavoro originale. Come posso mantenerlo come un foglio di lavoro originale.
Questo commento è stato fatto dal moderatore sul sito
Il nostro ufficio ha una duplicazione di dati (ad es. nome, indirizzo, città, importo, data firmata) da diversi originali excel e cercare di combinare i dati sarà un lavoro in corso. Come si può fare per eliminare il doppio lavoro e le doppie voci di informazioni?
Questo commento è stato fatto dal moderatore sul sito
Ottengo un "errore di runtime 1004", Metodo di copia della classe Foglio di lavoro non riuscito sulla riga che recita: Sheet.Copy After:=ThisWorkbook.Sheets(1). Sto usando Excel 2010. Potete aiutarmi? Grazie, - Susie
Questo commento è stato fatto dal moderatore sul sito
Ehi Susie, ho lavorato su questo problema per un po' di tempo, ottenendo lo stesso errore. Verifica se il modulo è stato creato in PERSONAL anziché nella cartella di lavoro attiva. Una volta creato il modulo sotto l'albero corretto, il codice seguente ha funzionato perfettamente. Sub GetSheets_xls() Dim Sheet As Worksheet Path = "C:\Users\yournamehere\Desktop\Testingfolder\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=False Set Sheet = ActiveWorkbook.Sheets(1) Sheet.Copy After:=ThisWorkbook.Sheets(1) 'Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub Spero che questo aiuti!
Questo commento è stato fatto dal moderatore sul sito
Molte grazie. Il tuo codice ha funzionato bene.
Questo commento è stato fatto dal moderatore sul sito
[quote]Ricevo un "errore di runtime 1004", Metodo di copia della classe del foglio di lavoro non riuscito sulla riga che recita: Sheet.Copy After:=ThisWorkbook.Sheets(1). Sto usando Excel 2010. Potete aiutarmi? Grazie, - Susiedi Susie[/quote] Ha avuto lo stesso problema, funziona quando vado a visualizzare e mostrare "PERSONALE", sembra avere problemi ad accedere a questa macro con il master nascosto.
Questo commento è stato fatto dal moderatore sul sito
Vai a visualizzare e mostrare "PERSONALE" - sembra avere problemi nell'esecuzione dell'intero codice mentre il master è nascosto. Puoi rendere la macro nativa per quella cartella di lavoro, ma dovresti ricreare l'intera cosa ogni volta che volevi usarla
Questo commento è stato fatto dal moderatore sul sito
Ciao! Grazie mille per questo file............. :roll: Cordiali saluti
Questo commento è stato fatto dal moderatore sul sito
Ehi, ottimo consiglio. Fatto quasi tutto quello che volevo. Nella cartella di lavoro combinata, mi sarebbe piaciuto che il nome del foglio di lavoro contenesse il nome della cartella di lavoro originale, quindi so da quale cartella di lavoro provengono i dati. I dati che sto combinando provengono da archivi diversi. Devo cercare una voce, ma non so in quale archivio si trovi. Quindi, combinando tutti i dati in un unico file, mi sarà possibile cercare tutti gli archivi contemporaneamente. Ma devo ancora sapere in quale archivio si trova la voce. Henrik
Questo commento è stato fatto dal moderatore sul sito
Affinché il codice incorpori il nome del file, fai questo. Sub GetSheets() Dim temp As String Path = "C:\Users\....\Desktop\Excel combine\" Filename = Dir(Path & "*.xlsx") Do While Filename "" Workbooks.Open Filename:= Path & Filename, ReadOnly:=True temp = ActiveWorkbook.Name ActiveSheet.Name = temp ActiveWorkbook.Sheets(temp).Copy After:=ThisWorkbook.Sheets(1) Workbooks(Filename).Close Filename = Dir() Loop End Sub Nota : questo serve per copiare solo il primo foglio, può essere modificato per fare tutti i fogli
Questo commento è stato fatto dal moderatore sul sito
Come si incorporano più fogli e come si specifica un file master diverso per incollare tutti i fogli.
Questo commento è stato fatto dal moderatore sul sito
È davvero un'ottima soluzione. grazie. Un problema però, quando lo eseguo in questo modo Excel mi chiederà se voglio salvare le modifiche prima della chiusura (poiché il nome è stato cambiato) e non voglio farlo per ogni file (circa 32 per esecuzione). Ci sarebbe un modo per risolvere questo?
Questo commento è stato fatto dal moderatore sul sito
Questo è fantastico :lol: mi ha aiutato molto....
Questo commento è stato fatto dal moderatore sul sito
Grazie amico, hai migliorato la mia giornata da questo sito Web molto utile ... In realtà volevo anche combinare gli stessi dati di intestazione di fogli diversi in 1 foglio di lavoro principale, KUTOOL per Excel mi ha aiutato molto.... Grazie ancora .... :)
Questo commento è stato fatto dal moderatore sul sito
Grazie mille per le preziose informazioni. Questo funziona davvero. I passaggi elencati in questo articolo hanno davvero semplificato il mio lavoro. Grazie, Dinesh
Questo commento è stato fatto dal moderatore sul sito
Grazie per avere condiviso le tue conoscenze
Questo commento è stato fatto dal moderatore sul sito
Come si fa ad aggiornare le modifiche dalla cartella di lavoro originale? Sto cercando di ottenere un riepilogo nazionale in cui ciascuna regione inserirà i propri dati nelle proprie cartelle di lavoro e quindi avrà il riepilogo nazionale che aggiorna da questo? Mi piacerebbe avere questa configurazione per l'intero anno all'inizio e non lavorare in modo retrospettivo.
Questo commento è stato fatto dal moderatore sul sito
Dopo aver combinato i fogli di lavoro in una cartella di lavoro, come si salva, non sono riuscito a salvarlo, si chiama Book1 e sto facendo clic su salva o salva come ma non funziona. Qualche suggerimento?
Questo commento è stato fatto dal moderatore sul sito
Ho seguito i passaggi in "Combina più cartelle di lavoro in una cartella di lavoro con VBA" e ho fatto clic su "Esegui", non è successo nulla. Non sono a conoscenza di errori e non sono sicuro di come correggerli. Mi aiuteresti? il seguente è il codice che ho inserito in una nuova cartella di lavoro. Grazie Sub GetSheets() Path = "p:\download\macro\" Filename = Dir(Percorso & "*.xls") Do While Filename "" Workbooks.Open Filename:=Percorso e nome file, ReadOnly:=True per ogni foglio in ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Questo commento è stato fatto dal moderatore sul sito
Caro signore/signora: ho seguito i passaggi di "Combina più cartelle di lavoro in una cartella di lavoro con VBA" per impostare il modulo seguente, ma non è successo nulla. Mi aiutereste a trovare il problema? grazie Sub GetSheets() Path = "p:\download\macro\" Filename = Dir(Percorso & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Foglio in ActiveWorkbook.Sheets Foglio.Copia dopo:=ThisWorkbook.Sheets(1) Foglio successivo Cartelle di lavoro(nomefile).Chiudi nomefile = Dir() Loop End Sub
Questo commento è stato fatto dal moderatore sul sito
per le versioni più recenti di excel, prova questo. Ho salvato la mia cartella di lavoro aperta come catalogo e tutti i file sono in c:\temp. Sub GetSheets() Path = "c:\temp\" Nome file = Dir(Percorso & "*.xls") Do While Nome file "" Workbooks.Open Nome file:=Percorso e nome file, Sola lettura:=True per ogni foglio in ActiveWorkbook. Fogli Foglio.Copia dopo:=Cartelle di lavoro("catalog.xlsx").Fogli(1) Foglio successivo Cartelle di lavoro(nomefile).Chiudi Nomefile = Dir() Loop End Sub
Questo commento è stato fatto dal moderatore sul sito
Prova questo per le versioni più recenti di excel. Ho salvato la mia cartella di lavoro come catalogo, tutti i file sono in c:\temp. Sub GetSheets() Path = "c:\temp\" Nome file = Dir(Percorso & "*.xls") Do While Nome file "" Workbooks.Open Nome file:=Percorso e nome file, Sola lettura:=True per ogni foglio in ActiveWorkbook. Fogli Foglio.Copia dopo:=Cartelle di lavoro("catalog.xlsx").Fogli(1) Foglio successivo Cartelle di lavoro(nomefile).Chiudi Nomefile = Dir() Loop End Sub
Questo commento è stato fatto dal moderatore sul sito
[quote]Prova questo per le versioni più recenti di Excel. Ho salvato la mia cartella di lavoro come catalogo, tutti i file sono in c:\temp. Sub GetSheets() Path = "c:\temp\" Nome file = Dir(Percorso & "*.xls") Do While Nome file "" Workbooks.Open Nome file:=Percorso e nome file, Sola lettura:=True per ogni foglio in ActiveWorkbook. Fogli Foglio.Copia dopo:=Cartelle di lavoro("catalog.xlsx").Fogli(1) Foglio successivo Cartelle di lavoro(nomefile).Chiudi Nomefile = Dir() Loop End SubDi Dave[/quote] Continuo a ricevere "impossibile assegnare a proprietà di sola lettura" riguardo al percorso... Qualche idea?
Questo commento è stato fatto dal moderatore sul sito
Anche io ho questo problema. L'hai capito?
Questo commento è stato fatto dal moderatore sul sito
Ancora niente... Non ho trovato alcuna soluzione o qualcuno ha suggerito una soluzione. Scusate...
Questo commento è stato fatto dal moderatore sul sito
Anche io. Funzionava 6 mesi fa, l'ultima volta che ho dovuto eseguirlo. Qualcuno ha già trovato la soluzione? Se lo avevi in ​​esecuzione prima e ora non funzionerà potrebbe essere qualcosa a che fare con un aggiornamento di Microsoft? Questo è uno strumento davvero utile per i miei compiti e mi fa risparmiare un sacco di tempo. Cosa potrebbe essere cambiato per far sì che Excel inizi a visualizzare questo messaggio all'improvviso? Essendo abbastanza nuovo in VBA, non ho idea di dove iniziare ad analizzare la logica. Cordiali saluti, Greg. Glasgow, Scozia.
Questo commento è stato fatto dal moderatore sul sito
Sembra che "Percorso" sia ora riservato, quindi usa qualsiasi altro nome e sostituisci "Percorso", ad esempio "Miopercorso".
Questo commento è stato fatto dal moderatore sul sito
Forse dovresti cambiare ReadOnly:=True to ReadOnly:=False, l'ho fatto ed è stato utile
Questo commento è stato fatto dal moderatore sul sito
Stavo cercando qualcosa del genere, ma volevo commentare. Il nome file Do While "" non deve essere qualcosa di diverso da ""? o sto leggendo male? Forse Do While NOT filename = "" Solo un pensiero...
Questo commento è stato fatto dal moderatore sul sito
Voglio unire tutti i fogli in un foglio in cui le intestazioni sono comuni... aiuto per favore
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho provato a utilizzare le macro di cui sopra per raccogliere alcuni file, sfortunatamente nessun risultato ... qualcuno può aiutarmi a sbarazzarsi della raccolta manuale dei file.
Questo commento è stato fatto dal moderatore sul sito
ho 112 fogli excel che voglio mettere in un unico foglio senza copiare e incollare. Per favore aiutatemi.
Questo commento è stato fatto dal moderatore sul sito
Ho una cartella di lavoro che contiene circa 250 fogli. Ho bisogno di Cobain in un foglio. per favore dammi una soluzione
Questo commento è stato fatto dal moderatore sul sito
Prova questo... L'ho preso da un altro sito ma sfortunatamente non riesco a ricordare il nome della signora, quindi mi scuso per non averle fatto menzione, mia cattiva" Combina più WB in Excel: RICORDA DI CAMBIARE MyPath = ! Sub Merge2MultiSheets( ) Dim wbDst As Workbook Dim wbSrc As Workbook Dim wsSrc As Worksheet Dim MyPath As String Dim strFilename As String Application.DisplayAlerts = False Application.EnableEvents = False Application.ScreenUpdating = False MyPath = "\\MyPath\etc\etc..." Imposta wbDst = Workbooks.Add(xlWBATWorksheet) strFilename = Dir(MyPath & "\*.xls", vbNormal) If Len(strFilename) = 0 Quindi Esci da Sub Esegui fino a strFilename = "" Imposta wbSrc = Workbooks.Open(Filename:= MyPath & "\" & strFilename) Imposta wsSrc = wbSrc.Worksheets(1) wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count) wbSrc.Close False strFilename = Dir() Loop wbDst.Worksheets(1). Elimina Application.DisplayAlerts = True Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao ho aggiunto il codice in un modulo. Chiamato il libro di Excel Masterfile. Dove nel codice aggiungo. grazie
Questo commento è stato fatto dal moderatore sul sito
Nessuno di questi ha funzionato per me, alla fine ho fatto funzionare questo. Cordiali saluti, sto usando 2010 'Descrizione: combina tutti i file in una cartella in un file master. Sub MergeFiles() Dim path As String, ThisWB As String, lngFilecounter As Long Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet Dim Filename As String, Wkb As Workbook Dim CopyRng As Range, Dest As Range Dim RowofCopySheet As Integer RowofCopySheet = 2 ' Riga da cui iniziare nei fogli da cui stai copiando ThisWB = ActiveWorkbook.Name path = "mypath....." ' Non dimenticare di modificare questo Application.EnableEvents = False Application.ScreenUpdating = False Set shtDest = ActiveWorkbook .Sheets(1) Filename = Dir(percorso & "\*.xls", vbNormal) Se Len(Filename) = 0 Quindi Esci Sub Do fino a Filename = vbNullString Se non Filename = ThisWB Quindi Imposta Wkb = Workbooks.Open(Filename: =percorso e "\" e nome file) Imposta CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)) Imposta Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1) CopyRng.Copy Dest Wkb.Close False End If Filename = Dir() Loop Rang e("A1").Seleziona Application.EnableEvents = True Application.ScreenUpdating = True MsgBox "Fatto!" Fine Sub
Questo commento è stato fatto dal moderatore sul sito
Come posso modificarlo in modo che i dati inseriti inizino sempre nella riga superiore? Se eseguo questo codice due volte, aggiunge i dati alla fine dei miei dati precedenti (dalla prima esecuzione della macro).
Questo commento è stato fatto dal moderatore sul sito
Modificare questa riga: RowofCopySheet = 2 in RowofCopySheet = 1
Questo commento è stato fatto dal moderatore sul sito
CIAO, ho più cartelle diverse di file Excel (foglio singolo) con protezione tramite password. voglio che alla fine della giornata combini tutti i dati in un file master. Ogni volta che devo inserire la password e aprire il file e copiare e incollare nel file master .. Aiutami gentilmente con il codice VBA per questo, per favore.
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL