Vba: come aprire tutti i file nella cartella
È possibile utilizzare un ciclo Do While con il metodo Workbooks.Open in VBA per aprire tutti i file in una cartella particolare.
Ecco un modo comune per farlo in pratica:
Sub OpenAllFilesInFolder()
Dim ThisFolder As String
Dim ThisFile As String
'specify folder location and types of files to open in folder
ThisFolder = "C:\Users\bob\Documents\current_data"
ThisFile = Dir(ThisFolder & "\*.xlsx")
'open each xlsx file in folder
Do While ThisFile <> ""
Workbooks.Open Filename:=ThisFolder & "\" & ThisFile
ThisFile = Dir
Loop
End Sub
Questa particolare macro apre tutti i file con estensione .xlsx nella seguente cartella:
- C:\Utenti\bob\Documenti\data_corrente
L’esempio seguente mostra come utilizzare questa macro nella pratica.
Correlato: Come ottenere un elenco di tutte le cartelle di lavoro aperte utilizzando VBA
Esempio: come aprire tutti i file in una cartella utilizzando VBA
Supponiamo di avere la seguente cartella denominata current_data che contiene tre file .xlsx :
Diciamo che vogliamo utilizzare VBA per aprire tutti i file .xlsx in questa cartella.
Per fare ciò possiamo creare la seguente macro:
Sub OpenAllFilesInFolder()
Dim ThisFolder As String
Dim ThisFile As String
'specify folder location and types of files to open in folder
ThisFolder = "C:\Users\bob\Documents\current_data"
ThisFile = Dir(ThisFolder & "\*.xlsx")
'open each xlsx file in folder
Do While ThisFile <> ""
Workbooks.Open Filename:=ThisFolder & "\" & ThisFile
ThisFile = Dir
Loop
End Sub
Quando eseguiamo questa macro, ogni file con estensione .xlsx nella cartella verrà aperto uno per uno.
Tieni presente che se uno qualsiasi dei file nella cartella è già aperto, tali file rimarranno semplicemente aperti.
Nota : qui è possibile trovare la documentazione completa per il metodo Workbooks.Open in VBA.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
Come rinominare un file utilizzando VBA
Come elencare i file in una cartella utilizzando VBA
Come verificare se il file esiste utilizzando VBA