V tomto článku vytvoříme makro pro výpis všech souborů ve složce.
Při spuštění makra se od buňky A17 zobrazí název souboru spolu s cestou k souboru.
Logické vysvětlení
V tomto článku jsme vytvořili dvě makra, „subfolder_files“ a „getting_filelist_in_folder“.
Makro „subfolder_files“ bere jako vstup cestu ke složce a logickou hodnotu a vrací název souboru ve složce.
„Get_filelist_in_folder“ se používá k volání makra „subfolder_files“. Poskytuje hodnotu cesty ke složce makra s logickou hodnotou nastavenou na 'true'. Pokud jsou požadovány názvy souborů v podsložkách, přiřadíme také booleovskou hodnotu „true“.
Vysvětlení kódu
folder_path = Sheet1.TextBox1.Value
Výše uvedený kód se používá k extrahování hodnoty řetězce z textového pole.
Volejte sub_adresáře_souborů (cesta_složky, True)
Výše uvedený kód se používá k volání makra „subfolder_files“. Přiřadí cestu ke složce a nastaví vlastnost „include_subfolder“ na true.
Nastavit fso = CreateObject ("scripting.filesystemobject")
Výše uvedený kód se používá k vytvoření objektu systému souborů.
Nastavit podsložku1 = fso.getfolder (cesta_složky)
Výše uvedený kód se používá k vytvoření objektu definované složky.
Pro každou složku1 V podsložkách1.subfolders
Volejte sub_files_files (složka1, True)
další
Výše uvedený kód slouží k prohlížení všech podsložek v hlavní složce.
Dir (adresář1 a "*.xlsx")
Výše uvedený kód se používá k získání názvu souboru aplikace Excel.
Zatímco název souboru ""
count1 = count1 + 1
ReDim Preserve filearray (1 To count1)
filearray (count1) = název_souboru
název souboru = Dir ()
Zamířit
Výše uvedený kód se používá k vytvoření pole, které se skládá ze všech názvů souborů přítomných ve složce.
For i = 1 To UBound (filearray)
Buňky (poslední, 1). Hodnota = cesta složky1 a adresář souborů (i)
lastrow = lastrow + 1
další
Výše uvedený kód se používá k přiřazení názvu souboru v poli k sešitu.
Pro kód prosím postupujte níže
Volba Explicitní dílčí podsložky_souborů (cesta složky1 jako varianta, Volitelně zahrnout_podložku jako booleovský) 'Kontrola, zda zahrnout podsložku nebo ne Pokud include_subfolder Potom' Deklarace proměnných Dim název_souboru, filearray () Jako řetězec Dim lastrow, count1, i As Integer 'Kontrola, zda cesta ke složce obsahuje zpětné lomítko jako poslední znak If Right (složka1, 1) "\" Pak složka1 Získání čísla řádku poslední buňky lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell). Řád + 1 count1 = 0 'Procházení všemi soubory ve složce Zatímco název souboru "" count1 = count1 + 1 ReDim Preserve filearray (1 To count1) filearray ( count1) = název_souboru = Dir () Wend On Error GoTo last 'Přidání názvu souboru do sešitu Pro i = 1 Do UBound (filearray) Buňky (lastrow, 1) .Hodnota = cesta ke složce1 & filearray (i) lastrow = lastrow + 1 Další End If last: End Sub Sub getting_filelist_in_folder () 'Deklarování proměnných Dim cesta_složky jako řetězec Dim fso jako objekt, složka1, podsložka1 jako objekt' Získání cesty složky složka_cesta = Sheet1.TextBox1.Value 'Kontrola, zda cesta ke složce obsahuje zpětné lomítko jako poslední znak Pokud doprava (cesta_složka, 1) " \ "Pak cesta_složky = cesta_složky &" \ "Konec Pokud 'Volání makra podadresářů_Volání souborů subfolder_files (cesta_složky, True)' Vytvoření objektu objektu systému souborů fso = CreateObject (" scripting.filesystemobject ") Nastavit podsložku1 = fso.getfolder (cesta_složky) 'Smyčka přes každou podsložku Pro každou složku1 V podsložce1.subfolders Volejte subfolder_files (složka1, True) Další konec Sub
Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail