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.

ArrowMain

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.

ArrowOutput

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]