In diesem Artikel erstellen wir ein Makro, um Details aller Dateien in einem Ordner zu erfassen.

Bevor Sie das Makro ausführen, müssen Sie den Pfad des Ordners im Textfeld angeben.

ArrowMain

Beim Ausführen des Makros werden Dateiname, Dateipfad, Dateigröße, Erstellungsdatum und Datum der letzten Änderung aller Dateien im Ordner zurückgegeben.

ArrowOutput

Logische Erklärung

In diesem Artikel haben wir zwei Makros „ListFilesInFolder“ und „TestListFilesInFolder“ erstellt.

Das Makro „ListFilesInFolder“ zeigt Details zu allen Dateien im Ordner an.

Das Makro „TestListFilesInFolder“ wird verwendet, um den Header anzugeben und das Makro „ListFilesInFolder“ aufzurufen.

Code Erklärung

Setzen Sie FSO = CreateObject („Scripting.FileSystemObject“)

Der obige Code wird verwendet, um ein neues Objekt des Dateisystemobjekts zu erstellen.

Setzen Sie SourceFolder = FSO.GetFolder (SourceFolderName)

Der obige Code wird verwendet, um ein Objekt des durch den Pfad angegebenen Ordners zu erstellen.

Zellen (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 Der obige Code wird verwendet, um Details der Dateien zu extrahieren.

Für jeden Unterordner in SourceFolder.SubFolders Aufruf derselben Prozedur für Unterordner ListFilesInFolder SubFolder.Path, True Nächster Unterordner Mit dem obigen Code werden Details aller Dateien in Unterordnern extrahiert.

Spalten („A: E“). Wählen Sie Selection.ClearContents. Der obige Code wird zum Löschen von Inhalten aus Spalte A bis E verwendet.

Bitte folgen Sie unten für den Code

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

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]