Vis detaljer om alle filerne i en mappe ved hjælp af VBA i Microsoft Excel

Anonim

I denne artikel vil vi oprette en makro til at indsamle detaljer om alle filerne i en mappe.

Før vi kører makroen, skal vi angive stien til mappen i tekstfeltet.

Når makroen køres, returneres den Filnavn, Filsti, Filstørrelse, Oprettelsesdato og Dato senest ændret af alle filerne i mappen.

Logisk forklaring

I denne artikel har vi oprettet to makroer "ListFilesInFolder" og "TestListFilesInFolder".

Makroen "ListFilesInFolder" viser detaljer relateret til alle filerne i mappen.

Makroen "TestListFilesInFolder" bruges til at angive overskriften og kalde makroen "ListFilesInFolder".

Kode forklaring

Indstil FSO = CreateObject ("Scripting.FileSystemObject")

Ovenstående kode bruges til at oprette et nyt objekt i filsystemobjektet.

Angiv SourceFolder = FSO.GetFolder (SourceFolderName)

Ovenstående kode bruges til at oprette et objekt i den mappe, der er angivet af stien.

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

Celler (r, 2) .Formel = FileItem.Path

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

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

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

Ovenstående kode bruges til at udtrække detaljer om filerne.

For hver undermappe I SourceFolder.SubFolders

'Opkald til samme procedure for undermapper

ListFilesInFolder SubFolder.Path, True

Næste undermappe

Ovenstående kode bruges til at udtrække detaljer om alle filerne i undermapper.

Kolonner ("A: E"). Vælg

Selection.ClearContents

Ovenstående kode bruges til at slette indhold fra kolonne A til E.

Følg venligst nedenstående for koden

 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 ") Indstil SourceFolder = FSO.GetFolder (SourceFolderName) r = Range (" A65536 "). Slut (xlUp) .Række + 1 for hvert FileItem i SourceFolder.Files 'Vis filegenskaber Celler (r, 1) .Formula = FileItem.Name Celler (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 Næste FileItem 'Henter filer i undermapper Hvis IncludeSubfolders derefter for hver undermappe i SourceFolder.SubFolders' Opkaldelse af samme procedure for undermapper ListFilesInFolder SubFolder.Path, True Next SubFolder End If Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Intet ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder () 'Declaring variable Dim FolderPath As String' Deaktivering af skærmopdateringer Application.ScreenUpdating = False 'Henter mappestien fra tekstfeltet FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate' Sletning af indholdet fra kolonner A: E Kolonner ("A: E"). Vælg Selection.ClearContents 'Tilføjelse af overskrifter Område ("A14"). Formel = "Filnavn:" Område ("B14"). Formel = "Sti:" Område ("C14"). Formel = "Filstørrelse:" Område ("D14"). Formel = "Dato oprettet:" Område ("E14"). Formel = "Dato senest ændret:" 'Formering af overskrifterne ("A14: E14"). Skrifttype .Bold = True 'Calling ListFilesInFolder makro ListFilesInFolder FolderPath, True' Justerer automatisk kolonnernes størrelse Kolonner ("A: E"). Vælg Selection.Columns.AutoFit Range ("A1"). Vælg End Sub 

Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet