Vis detaljer om alle filene i en mappe ved hjelp av VBA i Microsoft Excel

Anonim

I denne artikkelen vil vi lage en makro for å samle detaljer om alle filene i en mappe.

Før vi kjører makroen, må vi spesifisere banen til mappen i tekstboksen.

Når du kjører makroen, returnerer den Filnavn, Filbane, Filstørrelse, Dato opprettet og Dato sist endret for alle filene i mappen.

Logisk forklaring

I denne artikkelen har vi opprettet to makroer "ListFilesInFolder" og "TestListFilesInFolder".

Makroen "ListFilesInFolder" viser detaljer knyttet til alle filene i mappen.

Makroen "TestListFilesInFolder" brukes til å spesifisere toppteksten og kalle "ListFilesInFolder" -makroen.

Kode forklaring

Sett FSO = CreateObject ("Scripting.FileSystemObject")

Koden ovenfor brukes til å lage et nytt objekt for filsystemobjektet.

Angi SourceFolder = FSO.GetFolder (SourceFolderName)

Koden ovenfor brukes til å lage et objekt i mappen som er angitt av banen.

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

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

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

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

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

Koden ovenfor brukes til å trekke ut detaljer om filene.

For hver undermappe I SourceFolder.SubFolders

'Ringer samme prosedyre for undermapper

ListFilesInFolder SubFolder.Path, True

Neste undermappe

Koden ovenfor brukes til å trekke ut detaljer om alle filene i undermapper.

Kolonner ("A: E"). Velg

Selection.ClearContents

Koden ovenfor brukes til å slette innhold fra kolonne A til E.

Følg koden nedenfor

 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 ") Angi SourceFolder = FSO.GetFolder (SourceFolderName) r = Range (" A65536 "). End (xlUp) .Row + 1 For hvert FileItem I SourceFolder.Files 'Vis filegenskaper Celler (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 'Henter filer i undermapper Hvis IncludeSubfolders Then For Every SubMapder In SourceFolder.SubFolders' Calling same procedure for undermapper ListFilesInFolder SubFolder.Path, True Next SubMapder End If Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing ActiveWorkbook.Saved = True End Sub Sub TestListFilesInFolder () 'Declaring variable Dim FolderPath As String' Deaktiverer skjermoppdateringer Application.ScreenUpdating = False 'Henter mappebanen fra tekstboksen FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate' Sletter innholdet fra kolonner A: E Kolonner ("A: E"). Velg Selection.ClearContents 'Adding headers Range ("A14"). Formel = "Filnavn:" Range ("B14"). Formula = "Path:" Range ("C14"). Formel = "Filstørrelse:" Område ("D14"). Formel = "Dato opprettet:" Område ("E14"). Formel = "Dato sist endret:" 'Formering av overskrifter ("A14: E14"). Skrift .Bold = True 'Calling ListFilesInFolder makro ListFilesInFolder FolderPath, True' Justerer automatisk størrelsen på kolonnene Kolonner ("A: E"). Velg Selection.Columns.AutoFit Range ("A1"). Velg End Sub 

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post