Skip to main content

Come scorrere le cartelle di lavoro in una directory e copiare i dati in un foglio principale in Excel?

Author: Siluvia Last Modified: 2025-08-06

Supponiamo di avere più cartelle di lavoro di Excel in una cartella e di dover scorrere tutti questi file per copiare i dati da un intervallo specifico in un foglio di lavoro consistente (ad esempio, Foglio1) in un foglio di lavoro principale. Questa guida fornisce una soluzione VBA dettagliata per semplificare questo processo in Excel.

Scorrere le cartelle di lavoro in una directory e copiare i dati in un foglio principale con il codice VBA


Scorrere i file in una directory e copiare i dati in un foglio principale con il codice VBA

Se si desidera copiare i dati dall'intervallo A1:D4 in tutti i fogli di lavoro denominati Foglio1 delle cartelle di lavoro in una cartella specifica e incollarli in un foglio principale, seguire quanto segue.

1. Nella cartella di lavoro in cui si vuole creare un foglio di lavoro principale, premere i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.

2. Nella finestra Microsoft Visual Basic for Applications, fare clic su Inserisci > Modulo. Quindi copiare il seguente codice VBA nella finestra del codice.

Codice VBA: scorrere i file in una cartella e copiare i dati in un foglio principale

Sub Merge2MultiSheets()
    Dim xRg As Range
    Dim xSelItem As Variant
    Dim xFileDlg As FileDialog
    Dim xFileName, xSheetName, xRgStr As String
    Dim xBook, xWorkBook As Workbook
    Dim xSheet As Worksheet
    On Error Resume Next
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    xSheetName = "Sheet1"
    xRgStr = "A1:D4"
    Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    With xFileDlg
        If .Show = -1 Then
            xSelItem = .SelectedItems.Item(1)
            Set xWorkBook = ThisWorkbook
            Set xSheet = xWorkBook.Sheets("New Sheet")
            If xSheet Is Nothing Then
                xWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"
                Set xSheet = xWorkBook.Sheets("New Sheet")
            End If
            xFileName = Dir(xSelItem & "\*.xlsx", vbNormal)
            If xFileName = "" Then Exit Sub
            Do Until xFileName = ""
               Set xBook = Workbooks.Open(xSelItem & "\" & xFileName)
                Set xRg = xBook.Worksheets(xSheetName).Range(xRgStr)
                xRg.Copy xSheet.Range("A65536").End(xlUp).Offset(1, 0)
                xFileName = Dir()
                xBook.Close
            Loop
        End If
    End With
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Nota:

1). Nel codice, “A1:D4” e “Foglio1” significano che i dati nell'intervallo A1:D4 di tutti i Fogli1 verranno copiati nel foglio principale. E “Nuovo Foglio” è il nome del nuovo foglio principale creato.
2). I file di Excel nella cartella specifica non devono essere aperti.

3. Premere il tasto F5 per eseguire il codice.

4. Nella finestra Sfoglia che si apre, selezionare la cartella che contiene i file che si desidera scorrere, quindi fare clic sul pulsante OK. Vedere screenshot:

A screenshot of the Browse dialog box in Excel for selecting a folder containing files to loop through

Un foglio di lavoro principale denominato “Nuovo Foglio” viene quindi creato alla fine della cartella di lavoro corrente. E i dati nell'intervallo A1:D4 di tutti i Fogli1 nella cartella selezionata sono elencati all'interno del foglio di lavoro.


Articoli correlati:

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l’analisi dei dati grazie a: Esecuzione intelligente | Genera codice | Crea formule personalizzate | Analizza dati e genera grafici | Richiama Funzioni avanzate
Funzionalità popolari: Trova, evidenzia o identifica duplicati | Elimina righe vuote | Combina colonne o celle senza perdere dati | Arrotonda
Super RICERCA.VERT: Ricerca con criteri multipli    Ricerca valori multipli  |   Ricerca su più fogli   |   Corrispondenza approssimativa ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa a selezione multipla….
Gestione colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia lo stato di visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro & Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email da elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
I15 migliori kit di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule utili (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci immagine dal percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti per unire & dividere (Unione avanzata righe, Dividi celle, ...) | ...e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre!

Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice

  • Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!