Come scorrere le cartelle di lavoro in una directory e copiare i dati in un foglio principale in Excel?
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 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:
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:
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
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e farti risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta le schede su Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e lettura a schede 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 produttività del50% e riduce centinaia di clic del mouse ogni giorno!
Tutti gli add-in Kutools. Un solo programma di installazione
La suite Kutools for Office include add-in per Excel, Word, Outlook & PowerPoint più Office Tab Pro, ideale per i team che lavorano su più app di Office.





- Suite tutto-in-uno — Add-in per Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un solo programma di installazione, una sola licenza — configurazione in pochi minuti (pronto per MSI)
- Funzionano meglio insieme — produttività ottimizzata su tutte le app Office
- Prova completa30 giorni — nessuna registrazione, nessuna carta di credito
- Massimo risparmio — costa meno rispetto all’acquisto singolo degli add-in