Elenca i dettagli di tutti i file all'interno di una cartella utilizzando VBA in Microsoft Excel

Anonim

In questo articolo, creeremo una macro per raccogliere i dettagli di tutti i file all'interno di una cartella.

Prima di eseguire la macro, dobbiamo specificare il percorso della cartella nella casella di testo.

All'esecuzione della macro, restituirà il nome del file, il percorso del file, la dimensione del file, la data di creazione e la data dell'ultima modifica di tutti i file all'interno della cartella.

Spiegazione logica

In questo articolo abbiamo creato due macro “ListFilesInFolder” e “TestListFilesInFolder”.

La macro "ListFilesInFolder" visualizzerà i dettagli relativi a tutti i file all'interno della cartella.

La macro "TestListFilesInFolder" viene utilizzata per specificare l'intestazione e chiamare la macro "ListFilesInFolder".

Spiegazione del codice

Imposta FSO = CreateObject("Scripting.FileSystemObject")

Il codice sopra viene utilizzato per creare un nuovo oggetto dell'oggetto del file system.

Imposta SourceFolder = FSO.GetFolder(SourceFolderName)

Il codice sopra viene utilizzato per creare un oggetto della cartella specificata dal percorso.

Cells(r, 1).Formula = FileItem.Name

Cells(r, 2).Formula = FileItem.Path

Cells(r,3).Formula = FileItem.Size

Cells(r, 4).Formula = FileItem.DateCreated

Cells(r, 5).Formula = FileItem.DateLastModified

Il codice sopra viene utilizzato per estrarre i dettagli dei file.

Per ogni sottocartella in SourceFolder.SubFolders

'Richiamo della stessa procedura per le sottocartelle

ListFilesInFolder SubFolder.Path, True

Sottocartella successiva

Il codice sopra viene utilizzato per estrarre i dettagli di tutti i file all'interno delle sottocartelle.

Colonne("A:E").Seleziona

Selezione.Cancella contenuto

Il codice sopra viene utilizzato per eliminare il contenuto dalla colonna A alla E.

Si prega di seguire sotto per il codice

 Option Explicit Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Dichiarazione delle variabili Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long 'Creazione oggetto di FileSystemObject Set FSO = CreateObject("Scripting .FileSystemObject") Imposta SourceFolder = FSO.GetFolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 Per ogni FileItem in SourceFolder.Files 'Visualizza le proprietà del file Cells(r, 1).Formula = FileItem.Name Cells(r, 2).Formula = FileItem.Path Cells(r, 3).Formula = FileItem.Size Cells(r, 4).Formula = FileItem.DateCreated Cells(r, 5).Formula = FileItem. DateLastModified r = r + 1 Next FileItem 'Ottenimento dei file nelle sottocartelle If IncludeSubfolders Then per ogni sottocartella in SourceFolder.SubFolders 'Chiama la stessa procedura per le sottocartelle ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nothing Imposta SourceFolder = Nothing Set FSO = Niente ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder() 'Dichiarazione variabile Dim FolderPath As String 'Disabilitazione degli aggiornamenti dello schermo Application.ScreenUpdating = False 'Ottenimento del percorso della cartella dalla casella di testo FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate 'Cancellazione del contenuto dalle colonne A:E Columns ("A:E").Selezionare Selection.ClearContents 'Aggiunta intervallo di intestazioni ("A14"). Formula = "Nome file:" Intervallo ("B14"). Formula = "Percorso:" Intervallo ("C14"). Formula = "File Size:" Range("D14").Formula = "Date Created:" Range("E14").Formula = "Date Last Modified:" 'Formazione delle intestazioni Range("A14:E14").Font .Bold = True 'Chiamata della macro ListFilesInFolder ListFilesInFolder FolderPath, True 'Regola automaticamente la dimensione delle colonne Columns("A:E").Select Selection.Columns.AutoFit Range("A1").Select End Sub 

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook. Inoltre, puoi seguirci su Twitter e Facebook.

Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica