dettagli elenco di tutti i file all’interno di una cartella utilizzando VBA in Microsoft Excel
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.
Quando si esegue la 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
Set FSO = CreateObject (“Scripting.FileSystemObject”)
Il codice precedente viene utilizzato per creare un nuovo oggetto dell’oggetto file system.
Imposta SourceFolder = FSO.GetFolder (SourceFolderName)
Il codice precedente viene utilizzato per creare un oggetto della cartella specificata dal percorso.
Celle (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 precedente viene utilizzato per estrarre i dettagli dei file.
Per ogni sottocartella in SourceFolder.SubFolders Chiamare la stessa procedura per le sottocartelle ListFilesInFolder SubFolder.Path, True Next SubFolder Il codice precedente viene utilizzato per estrarre i dettagli di tutti i file all’interno delle sottocartelle.
Colonne (“A: E”). Seleziona Selection.ClearContents Il codice sopra è usato per cancellare il contenuto dalla colonna A alla E.
Segui sotto per il codice
Option Explicit Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Declaring variables Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long 'Creating object of FileSystemObject Set FSO = CreateObject("Scripting.FileSystemObject") Set SourceFolder = FSO.GetFolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 For Each FileItem In SourceFolder.Files 'Display file properties 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 'Getting files in sub folders If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders 'Calling same procedure for sub folders ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder() 'Declaring variable Dim FolderPath As String 'Disabling screen updates Application.ScreenUpdating = False 'Getting the folder path from text box FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate 'Clearing the content from columns A:E Columns("A:E").Select Selection.ClearContents 'Adding headers Range("A14").Formula = "File Name:" Range("B14").Formula = "Path:" Range("C14").Formula = "File Size:" Range("D14").Formula = "Date Created:" Range("E14").Formula = "Date Last Modified:" 'Formating of the headers Range("A14:E14").Font.Bold = True 'Calling ListFilesInFolder macro ListFilesInFolder FolderPath, True 'Auto adjusting the size of the columns Columns("A:E").Select Selection.Columns.AutoFit Range("A1").Select End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]