Zoznam súborov v priečinku pomocou jazyka VBA v programe Microsoft Excel

Obsah

V tomto článku vytvoríme makro na zoznam všetkých súborov v priečinku.

Pri spustení makra sa od bunky A17 zobrazí názov súboru spolu s cestou k súboru.

Logické vysvetlenie

V tomto článku sme vytvorili dve makrá, „podpriečinky_súbory“ a „getting_filelist_in_folder“.
Makro „subfolder_files“ vezme cestu k priečinku a logickú hodnotu ako vstupy a vráti názov súboru v priečinku.

„Get_filelist_in_folder“ sa používa na volanie makra „subfolder_files“. Poskytuje makro hodnotu cesty k priečinku s logickou hodnotou nastavenou na hodnotu „true“. Tiež, keď sú požadované názvy súborov v podpriečinkoch, priradíme boolovskú hodnotu „true“.

Vysvetlenie kódu

priečinok_cesta = List1.TextBox1.Hodnota
Vyššie uvedený kód sa používa na extrakciu hodnoty reťazca z textového poľa.

Volať súbory subfolder_files (cesta_ priečinka, True)
Vyššie uvedený kód sa používa na volanie makra „subfolder_files“. Priradí cestu k priečinku a nastaví vlastnosť „include_subfolder“ na hodnotu true.

Nastaviť fso = CreateObject ("scripting.filesystemobject")
Vyššie uvedený kód sa používa na vytvorenie objektu systému súborov.

Nastaviť podpriečinok1 = fso.getfolder (cesta_ priečinka)
Vyššie uvedený kód sa používa na vytvorenie objektu definovaného priečinka.

Pre každý priečinok1 V podpriečinkoch1.priečinkov
Volať podadresáre_souborov (priečinok1, True)
Ďalšie
Vyššie uvedený kód sa používa na prehľadanie všetkých podpriečinkov v hlavnom priečinku.

Dir (cesta k priečinku1 & "*.xlsx")
Vyššie uvedený kód sa používa na získanie názvu súboru programu Excel.

Kým názov súboru ""
count1 = count1 + 1
ReDim Preserve filearray (1 To count1)
filearray (count1) = názov súboru
názov súboru = Dir ()
Wend

Vyššie uvedený kód sa používa na vytvorenie poľa, ktoré pozostáva zo všetkých názvov súborov prítomných v priečinku.

Pre i = 1 až UBound (filearray)
Bunky (posledná, 1). Hodnota = cesta k priečinku1 a pole súborov (i)
lastrow = lastrow + 1
Ďalšie

Vyššie uvedený kód sa používa na priradenie názvu súboru v poli k zošitu.

Pri kódovaní postupujte podľa nižšie uvedených pokynov

 Voľba Explicitné podpriečinky podpriečinkov (priečinok1 cesty ako variant, voliteľný include_subfolder ako boolean) 'Kontrola, či zahrnúť podpriečinok alebo nie Ak include_subfolder Then' Deklarovanie premenných Dim názov súboru, súborový rad () Ako reťazec Dim posledná dĺžka, počet1, i ako celé číslo 'Kontrola, či cesta k priečinku obsahuje spätné lomítko ako posledný znak Ak vpravo (cesta k priečinku1, 1) "\" Potom cesta k priečinku1 = cesta k priečinku1 & "\" Ukončiť ak 'Získanie názvu súboru prvého súboru v definovanej ceste k priečinku názov súboru = priečinok (cesta k priečinku1 & "*.xlsx")' Získanie čísla riadka poslednej bunky lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell). Riadok + 1 počet1 = 0 'Opakovanie všetkých súborov v priečinku Kým názov súboru "" počet1 = počet1 + 1 ReDim Zachovať súborový rad (1 Počet1) filearray ( count1) = názov súboru názov súboru = Dir () Wend On Error GoTo last 'Pridanie názvu súboru do zošita Pre i = 1 Do UBound (filearray) Bunky (lastrow, 1). Hodnota = priečinokpath1 & filearray (i) lastrow = lastrow + 1 Ďalej End If last: End Sub sub getting_filelist_in_folder () 'Deklarovanie premenných Dim priečinok_cesta ako reťazec Dim fso ako objekt, priečinok1, podpriečinok1 ako objekt' Získanie cesty k priečinku priečinok_cesta = Sheet1.TextBox1.Value 'Kontrola, či cesta k priečinku obsahuje ako posledný znak spätné lomítko, či je správne (cesta_ priečinka, 1) “ \ "Potom priečinok_cesta = cesta_k priečinku &" \ "Ukončiť ak 'Volanie makra podadresárov_souborov Zavolať podadresáre_súbory (priečinok_cesta, True)' Vytvorenie objektu objektu systému súborov fso = CreateObject (" scripting.filesystemobject ") Nastaviť podpriečinok1 = fso.getfolder (cesta_ priečinka) 'Smyčka cez každú podpriečinok Pre každý priečinok1 V podpriečinku1.subfolders Zavolať subfolder_files (priečinok1, True) Nasledujúci koniec Sub 

Ak sa vám tento blog páčil, zdieľajte ho so svojimi priateľmi na Facebooku. Môžete nás tiež sledovať na Twitteri a Facebooku.

Budeme radi, ak sa nám ozvete, dajte nám vedieť, ako môžeme zlepšiť našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave