Liste over filer i en mappe ved hjælp af VBA i Microsoft Excel

Indholdsfortegnelse

I denne artikel vil vi oprette en makro til at liste alle filerne i mappen.

Når makroen køres, vises filnavnet sammen med filstien fra celle A17.

Logisk forklaring

I denne artikel har vi oprettet to makroer, "undermappe_filer" og "at få_filelist_in_mappe".
Makroen "undermappe_filer" tager mappestien og den boolske værdi som input og returnerer filnavnet i mappen.

"Get_filelist_in_folder" bruges til at kalde makroen "undermappe_filer". Det giver mappens sti værdi til makroen, med boolsk værdi indstillet 'sand'. Når filnavne i undermapperne er påkrævet, tildeler vi boolsk værdi 'sand'.

Kode forklaring

folder_path = Sheet1.TextBox1.Value
Ovenstående kode bruges til at udtrække strengværdi fra tekstboksen.

Ring til undermappe_filer (folder_path, True)
Ovenstående kode bruges til at kalde makroen "undermappe_filer". Det tildeler mappestien og angiver egenskaben "include_subfolder" sand.

Indstil fso = CreateObject ("scripting.filesystemobject")
Ovenstående kode bruges til at oprette objekt i filsystemet.

Angiv undermappe1 = fso.getfolder (folder_path)
Ovenstående kode bruges til at oprette objektet for den definerede mappe.

For hver mappe1 I undermappe1.undermapper
Ring til undermappe_filer (mappe1, sand)
Næste
Ovenstående kode bruges til at gennemse alle undermapperne i hovedmappen.

Dir (folderpath1 & "*.xlsx")
Ovenstående kode bruges til at hente excel -filnavnet.

Mens filnavnet ""
count1 = count1 + 1
ReDim Preserve filearray (1 at tælle1)
filearray (count1) = filnavn
filnavn = Dir ()
Wend

Ovenstående kode bruges til at oprette et array, der består af alle filnavne, der findes i mappen.

For i = 1 Til UBound (filearray)
Celler (lastrow, 1) .Value = folderpath1 & filearray (i)
lastrow = lastrow + 1
Næste

Ovenstående kode bruges til at tildele filnavnet i arrayet til projektmappen.

Følg venligst nedenstående for koden

 Valgmulighed Eksplicit undermappe_filer (mappebane1 som variant, Valgfri inkluderer_undermappe som boolsk) 'Kontrol af om der skal medtages undermappe eller ej Hvis inkluderet_subfolder derefter' Deklarationsvariabler Dim filnavn, filearray () As String Dim lastrow, count1, i As Integer 'Kontrol af om mappesti indeholder backslash som sidste tegn Hvis Right (folderpath1, 1) "\" Herefter folderpath1 = folderpath1 & "\" End If 'Hentning af filnavnet for den første fil i den definerede mappesti filnavn = Dir (folderpath1 & "*.xlsx")' Henter rækkenummer for sidste celle lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell) .Række + 1 count1 = 0 'Sløjfer gennem alle filerne i mappen Mens filnavn "" count1 = count1 + 1 ReDim Preserve filearray (1 To count1) filearray ( count1) = filnavn filnavn = Dir () Gå til fejl Gå til sidste 'Tilføjelse af filnavn til projektmappe Til i = 1 Til UBound (filearray) Celler (lastrow, 1) .Value = folderpath1 & filearray (i) lastrow = lastrow + 1 Next Afslut hvis sidste: Afslut sub -sub får_filelist_in_mappe () 'Deklaration af variabler Dim folder_path As String Dim fso As Object, folder1, undermappe1 As Object' Hentning af sti til mappen folder_path = Sheet1.TextBox1.Value 'Kontrol af, om mappestien indeholder backslash som sidste tegn Hvis Right (folder_path, 1) " \ "Derefter folder_path = folder_path &" \ "End If 'Calling subfolder_files macro Call subfolder_files (folder_path, True)' Oprettelse af objekt for filsystemobjekt Set fso = CreateObject (" scripting.filesystemobject ") Indstil undermappe1 = fso.getfolder (folder_path) 'Looping gennem hver undermappe For hver mappe1 I undermappe1. Undermapper Ring til undermappe_filer (mappe1, sand) Næste ende 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

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave