Listen Sie Details aller Dateien in einem Ordner mit VBA in Microsoft Excel auf

Anonim

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

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

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

Logikerklä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.

Codeerklärung

FSO setzen = CreateObject("Scripting.FileSystemObject")

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

Set SourceFolder = FSO.GetFolder(SourceFolderName)

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

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

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

Zellen(r, 3).Formel = FileItem.Size

Zellen(r, 4).Formel = 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

'Gleiche Prozedur für Unterordner aufrufen

ListFilesInFolder SubFolder.Path, True

Nächster Unterordner

Der obige Code wird verwendet, um Details aller Dateien in Unterordnern zu extrahieren.

Columns("A:E").Select

Auswahl.Inhalte löschen

Der obige Code wird verwendet, um Inhalte von Spalte A bis E zu löschen.

Bitte folgen Sie unten für den Code

 Option Explicit Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Variablen deklarieren Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long 'Objekt von FileSystemObject erstellen Set Scripting . CreateObject(" .FileSystemObject") Set SourceFolder = FSO.GetFolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 für jedes FileItem in SourceFolder.Files 'Dateieigenschaften anzeigen 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 'Dateien in Unterordnern abrufen If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders 'Aufruf der gleichen Prozedur für Unterordner ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nichts Set SourceFolder = Nothing Set FSO = Nichts ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder() 'Variable Dim FolderPath als String deklarieren 'Bildschirmaktualisierungen deaktivieren Application.ScreenUpdating = False 'Ordnerpfad aus Textfeld abrufen FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate 'Inhalt aus Spalten löschen A:E Spalten ("A:E").Select Selection.ClearContents 'Hinzufügen von Headern Range("A14").Formula = "Dateiname:" Range("B14").Formula = "Pfad:" Range("C14").Formula = "Dateigröße:" Range("D14").Formula = "Erstellungsdatum:" Range("E14").Formula = "Datum der letzten Änderung:" 'Formatierung der Überschriften Range("A14:E14").Font .Bold = True 'Aufruf von ListFilesInFolder Makro ListFilesInFolder FolderPath, True 'Automatische Anpassung der Spaltengröße Columns("A:E").Select Selection.Columns.AutoFit Range("A1").Select End Sub 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site