Come combinare più file Excel in una cartella di lavoro Excel

Ho ricevuto una chiamata da un amico che voleva combinare più file Excel in un'unica cartella di lavoro Excel. Aveva molti file in una cartella e voleva ottenere tutti i fogli di lavoro di tutte le cartelle di lavoro in un'unica cartella di lavoro.

Anche se questo può essere fatto manualmente, richiederebbe molto tempo e sarebbe soggetto a errori.

Tuttavia, un semplice codice VBA può farlo in pochi secondi.

Combina più file Excel in un unico file

Ecco il codice che può combinare più cartelle di lavoro di Excel in una cartella specificata in un'unica cartella di lavoro di Excel:

Sub ConslidateWorkbooks() 'Creato da Sumit Bansal da https://trumpexcel.com Dim FolderPath As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ("userprofile") & "DesktopTest" Filename = Dir( FolderPath & "*.xls*") Do While Filename "" Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True per ogni foglio in ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Cartelle di lavoro del foglio successivo (Nome file).Chiudi nome file = Dir() Loop Application.ScreenUpdating = True End Sub

Come usare questo codice?

Ecco i passaggi per utilizzare questo codice:

  • Metti tutti i file Excel che vuoi combinare in una cartella. Ai fini di questo tutorial, ho creato una cartella denominata Test e contiene sei file (4 cartelle di lavoro Excel e 1 Power Point e Word ciascuno).
  • Apri una nuova cartella di lavoro di Excel.
  • Premi ALT + F11 (o vai su Sviluppatore -> Codice -> Visual Basic). Verrà aperto l'editor di Visual Basic.
  • Nell'editor VB, nell'editor del progetto, fare clic con il pulsante destro del mouse su uno qualsiasi degli oggetti per la cartella di lavoro e andare su Inserisci -> Modulo. Questo inserirà un modulo per la cartella di lavoro.
  • Fare doppio clic sul modulo. Si aprirà la finestra del codice sulla destra.
  • Copia e incolla il codice sopra nella finestra del codice.
  • Nel codice, è necessario modificare la seguente riga di codice:
    FolderPath = Ambiente("profiloutente") & "DesktopTest"

    In questa riga, cambia la parte tra virgolette (evidenziata in arancione) con la posizione della cartella in cui hai i file che vuoi combinare. Nel codice usato sopra, la cartella si trova sul desktop. Se lo hai in qualche altra posizione, specifica quel percorso qui.

  • Posiziona il cursore in un punto qualsiasi del codice e fai clic sul pulsante verde di riproduzione nelle opzioni della barra degli strumenti (o premi il tasto F5).

Questo eseguirà il codice e tutti i fogli di lavoro di tutti i file Excel nella cartella verranno consolidati in un'unica cartella di lavoro.

Come funziona questo codice?

  • Il codice utilizza la funzione DIR per ottenere i nomi dei file dalla cartella specificata.
  • La riga seguente assegna il nome del primo file excel alla variabile 'Filename'.
    Nome file = Dir(PercorsoCartella & “*.xls*”)
  • Quindi il ciclo Do While viene utilizzato per verificare se tutti i file sono stati coperti.
  • All'interno del ciclo "Do While", il ciclo "For Each" viene utilizzato per copiare tutti i fogli di lavoro nella cartella di lavoro in cui stiamo eseguendo il codice.
  • Alla fine del Do Loop, viene utilizzata la seguente riga di codice: Filename = Dir(). Assegna il nome del file Excel successivo alla variabile Filename e il ciclo ricomincia.
  • Quando tutti i file sono coperti, la funzione DIR restituisce una stringa vuota, ovvero quando termina il ciclo.

Ecco una spiegazione della funzione DIR nella libreria MSDN:

Dir restituisce il nome del primo file che corrisponde a percorso. Per ottenere altri nomi di file che corrispondano al percorso, chiama Dir di nuovo senza argomenti. Quando non ci sono più nomi di file corrispondenti, Dir restituisce una stringa di lunghezza zero ("").

Hai mai provato qualcosa del genere usando VBA? Condividi quello che hai fatto e tutti noi possiamo imparare da esso.

Risparmia una quantità pazzesca di tempo usando VBA. Dai un'occhiata al CORSO VBA Excel.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave