Come scorrere le cartelle di lavoro presenti in una directory e copiare i dati in un foglio master in Excel?
Immagina di avere più cartelle di lavoro Excel all’interno di una stessa cartella e di dover esaminare ciascun file per copiare i dati da un intervallo specifico in un foglio coerente (ad esempio, Foglio1) in un foglio di lavoro principale. Questa guida ti offre una soluzione dettagliata in VBA per semplificare l’intera procedura in Excel.
Scorri le cartelle di lavoro in una directory e copia i dati in un foglio master con codice VBA
Scorri i file in una directory e copia i dati in un foglio master con codice VBA
Per copiare i dati dall'intervallo A1:D4 presenti nel foglio Foglio1 di tutte le cartelle di lavoro contenute in una cartella specifica e incollarli in un foglio master, procedere come segue.
1. Nella cartella di lavoro in cui si creerà un Foglio di lavoro principale, premere i tasti Alt+F11 per aprire la finestra di Microsoft Visual Basic for Applications.
2. Nella finestra di Microsoft Visual Basic for Applications, fai clic su Inserisci > Modulo. Quindi, copia il seguente codice VBA nella finestra del codice.
Codice VBA: scorri i file in una cartella e copia i dati in un foglio master
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, seleziona la cartella contenente i file da elaborare, quindi fai clic sul pulsante OK. Vedere lo screenshot:

Viene quindi creato un foglio di lavoro principale denominato «New Sheet» alla fine del foglio di lavoro corrente. I dati presenti nell’intervallo A1:D4 di tutti i Foglio1 della cartella selezionata vengono elencati all’interno del foglio di lavoro.
Articoli correlati:
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 oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi