Šajā rakstā mēs izveidosim makro, lai uzskaitītu visus mapē esošos failus.
Palaižot makro, faila nosaukums kopā ar faila ceļu tiks parādīts, sākot no šūnas A17.
Loģisks skaidrojums
Šajā rakstā mēs esam izveidojuši divus makro - “apakšmapes_faili” un “kļūst_failu saraksta_mape”.
Makro “subfolder_files” kā ievadi izmanto mapes ceļu un Būla vērtību un atgriež faila nosaukumu mapē.
“Get_filelist_in_folder” tiek izmantots, lai izsauktu makro “subfolder_files”. Tas nodrošina mapes ceļa vērtību makro, ar Būla vērtību iestatījumu “true”. Turklāt, ja apakšmapēs ir nepieciešami failu nosaukumi, mēs piešķiram Būla vērtību “true”.
Koda skaidrojums
folder_path = Sheet1.TextBox1.Value
Iepriekš minētais kods tiek izmantots, lai izvilktu virknes vērtību no tekstlodziņa.
Zvana apakšmapes_faili (mapes_ceļš, patiess)
Iepriekš minēto kodu izmanto, lai izsauktu makro “subfolder_files”. Tas piešķir mapes ceļu un iestata rekvizītu “include_subfolder” true.
Iestatīt fso = CreateObject ("scripting.filesystemobject")
Iepriekš minēto kodu izmanto, lai izveidotu failu sistēmas objektu.
Iestatīt apakšmapi1 = fso.getfolder (mapes_ceļš)
Iepriekš minētais kods tiek izmantots, lai izveidotu definētās mapes objektu.
Katrai mapei1 Apakšmapē1.apakšmapes
Zvanīt apakšmapes_failiem (1. mape, True)
Nākamais
Iepriekš minēto kodu izmanto, lai apskatītu visas apakšmapes galvenajā mapē.
Rež. (Mapes ceļš1 un "*.xlsx")
Iepriekš minētais kods tiek izmantots, lai iegūtu Excel faila nosaukumu.
Kamēr faila nosaukums ""
skaits1 = skaits1 + 1
ReDim Preserve failu shēma (1, lai saskaitītu1)
filearray (skaits1) = faila nosaukums
faila nosaukums = Režisors ()
Wend
Iepriekš minēto kodu izmanto, lai izveidotu masīvu, kas sastāv no visiem mapē esošajiem failu nosaukumiem.
Attiecībā uz i = 1 uz UBound (filearray)
Šūnas (pēdējā, 1). Vērtība = mapes ceļš1 un failu masīvs (i)
pēdējā valoda = pēdējā diena + 1
Nākamais
Iepriekš minētais kods tiek izmantots, lai darbgrāmatai piešķirtu faila nosaukumu masīvā.
Lūdzu, sekojiet tālāk norādītajam kodam
Option Explicit Sub subfolder_files (folderpath1 as Variant, Optional include_subfolder As Boolean) 'Pārbaude, vai iekļaut apakšmapi vai ne If if_subfolder then' Deklarējošie mainīgie Dim faila nosaukums, filearray () Kā virkne Dim pēdējā, skaits1, i Kā vesels skaitlis Pārbauda, vai mapes ceļš satur atpakaļvērstā slīpsvītra kā pēdējā rakstzīme If Right (folderpath1, 1) "\" Tad folderpath1 = folderpath1 & "\" End If 'Pirmā faila faila nosaukuma iegūšana definētajā mapē ceļš filename = Dir (folderpath1 & "*.xlsx")' Pēdējās šūnas rindas numura iegūšana lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row + 1 count1 = 0 'Visu mapē esošo failu apskate Kamēr faila nosaukums "" count1 = count1 + 1 ReDim Saglabā filearray (1 To count1) filearray ( count1) = faila nosaukums faila nosaukums = Dir () Wend On Error GoTo last 'Faila nosaukuma pievienošana darbgrāmataiI = 1 UBound (filearray) šūnām (lastrow, 1). Vērtība = folderpath1 & filearray (i) lastrow = lastrow + 1 Next Beigas Ja pēdējais: Beigt apakšapakšu, nokļūstot_failu sarakstā_ mapē () 'Mainīgo lielumu deklarēšana Dim folder_path Kā virkne Dim fso Kā objekts, folder1, subfolder1 As Object' Mapes folder_path = Sheet1.TextBox1.Value iegūšanas ceļš \ "Tad mapes_ceļš = mapes_ceļš &" \ "Beigt, ja 'Zvana apakšmapes_failus makro Zvanīt apakšmapes_failiem (mapes_ceļš, patiess)' Failu sistēmas objekta objekta izveide Set fso = CreateObject (" scripting.filesystemobject ") Iestatīt apakšmapi1 = fso.getfolder (folder_path) 'Cilpu cauri katrai apakšmapei Katrai mapei1 Apakšmapē1.apakšmapes Zvanīt subfolder_files (folder1, True) Next End Sub
Ja jums patika šis emuārs, kopīgojiet to ar saviem draugiem Facebook. Varat arī sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot savu darbu un padarīt to labāku jums. Rakstiet mums e -pasta vietnē