Enumerați detaliile tuturor fișierelor dintr-un folder folosind VBA în Microsoft Excel

Cuprins

În acest articol, vom crea o macro pentru a aduna detalii despre toate fișierele dintr-un folder.

Înainte de a rula macro-ul, trebuie să specificăm calea folderului în caseta de text.

La executarea macro-ului, acesta va returna numele fișierului, calea fișierului, dimensiunea fișierului, data creării și data ultimei modificări a tuturor fișierelor din dosar.

Explicație logică

În acest articol, am creat două macrocomenzi „ListFilesInFolder” și „TestListFilesInFolder”.

Macro-ul „ListFilesInFolder” va afișa detalii legate de toate fișierele din folder.

„TestListFilesInFolder” este utilizată pentru a specifica antetul și a apela macrocomanda „ListFilesInFolder”.

Explicarea codului

Setați FSO = CreateObject ("Scripting.FileSystemObject")

Codul de mai sus este utilizat pentru a crea un nou obiect al sistemului de fișiere.

Set SourceFolder = FSO.GetFolder (SourceFolderName)

Codul de mai sus este utilizat pentru a crea un obiect al folderului specificat de cale.

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

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

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

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

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

Codul de mai sus este utilizat pentru a extrage detalii despre fișiere.

Pentru fiecare subfolder din SourceFolder.SubFolders

'Apelarea aceleiași proceduri pentru subdosare

ListFilesInFolder SubFolder.Path, True

Următorul subfolder

Codul de mai sus este folosit pentru a extrage detalii despre toate fișierele din sub-foldere.

Coloane („A: E”). Selectați

Selection.ClearContents

Codul de mai sus este utilizat pentru a șterge conținutul din coloana A la E.

Vă rugăm să urmați codul de mai jos

 Opțiune 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' Crearea obiectului FileSystemObject Set FSO = CreateObject ("Script .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 Următorul FileItem 'Obținerea fișierelor în subdosare dacă IncludeSubfoldere apoi pentru fiecare subfolder din SourceFolder.SubFolders' Apelând aceeași procedură pentru subfoldere ListFilesInFolder SubFolder.Path, True Next SubFolder End if Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nimic ActiveWorkbook.Saved = Adevărat End Sub Sub TestListFilesInFolder () 'Declararea variabilei Dim FolderPath as String' Dezactivarea actualizărilor ecranului Application.ScreenUpdating = False 'Obținerea căii folderului din caseta de text FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate' Ștergerea conținutului din coloanele A: E Coloane ("A: E"). Selectați Selection.ClearContents 'Adăugarea antetelor Range ("A14"). Formula = "Nume fișier:" Range ("B14"). Formula = "Path:" Range ("C14"). Formula = "Dimensiune fișier:" Interval ("D14"). Formula = "Data creării:" Interval ("E14"). Formula = "Data ultimei modificări:" 'Formarea antetelor Interval ("A14: E14"). Font .Bold = True 'Apelare ListFilesInFolder macro ListFilesInFolder FolderPath, True' Reglarea automată a dimensiunii coloanelor Coloane ("A: E"). Selectați Selection.Columns.AutoFit Range ("A1"). Selectați End Sub 

Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave