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