Listaa tiedostot kansioon Microsoft Excelin VBA: n avulla

Sisällysluettelo

Tässä artikkelissa luomme makron luetteloimaan kaikki kansion tiedostot.

Makroa käytettäessä tiedoston nimi ja tiedostopolku näkyvät solusta A17 alkaen.

Looginen selitys

Tässä artikkelissa olemme luoneet kaksi makroa, "alikansiotiedostot" ja "hakemistotiedoston_kansio".
"Subfolder_files" -makro käyttää kansion polkua ja boolen arvoa tuloina ja palauttaa tiedoston nimen kansiossa.

"Getting_filelist_in_folder" käytetään kutsumaan "subfolder_files" -makroa. Se antaa kansion polkuarvon makrolle, ja totuusarvo asetetaan 'true'. Lisäksi kun alikansioiden tiedostojen nimet ovat pakollisia, määritämme totuusarvon "true".

Koodin selitys

folder_path = Sheet1.TextBox1.Value
Yllä olevaa koodia käytetään poimimaan merkkijonoarvo tekstiruudusta.

Soita alikansiotiedostot (folder_path, True)
Yllä olevaa koodia käytetään kutsumaan "subfolder_files" -makro. Se määrittää kansion polun ja asettaa "include_subfolder" -ominaisuuden tosi.

Aseta fso = CreateObject ("scripting.filesystemobject")
Yllä olevaa koodia käytetään tiedostojärjestelmän objektin luomiseen.

Aseta alikansio1 = fso.getfolder (folder_path)
Yllä olevaa koodia käytetään määritetyn kansion objektin luomiseen.

Jokaiselle kansiolle1 Alikansioissa1.kansioissa
Soita alikansiotiedostot (kansio1, tosi)
Seuraava
Yllä olevaa koodia käytetään kaikkien pääkansion alikansioiden selaamiseen.

Dir (kansion polku1 & "*.xlsx")
Yllä olevaa koodia käytetään Excel -tiedoston nimen saamiseen.

Vaikka tiedostonimi ""
count1 = count1 + 1
ReDim Preserve -tiedosto (1 laskea1)
filearray (count1) = tiedostonimi
tiedostonimi = Dir ()
Lähteä

Yllä olevaa koodia käytetään luomaan taulukko, joka koostuu kaikista kansiossa olevista tiedostonimistä.

I = 1 UBoundiin (tiedostosarja)
Solut (viimeinen, 1). Arvo = kansion polku1 ja tiedostokaavio (i)
lastrow = viimeinen + 1
Seuraava

Yllä olevaa koodia käytetään määrittämään taulukon tiedostonimi työkirjaan.

Seuraa koodia alla

 Option Explicit Sub subfolder_files (folderpath1 as Variant, Optional include_subffder as Boolean) 'Tarkistetaan sisällytetäänkö alikansio vai ei If include_subfolder then' Declaring muuttujat Dim filename, filearray () String Dim lastrow, count1, i As Integer 'Tarkistetaan, sisältävätkö kansiopolku käänteisviiva viimeisenä merkkinä Jos oikea (kansion polku1, 1) "\" Sitten kansion polku1 = kansion polku1 & "\" Lopeta jos 'Ensimmäisen tiedoston tiedostonimen hakeminen määritetyn kansion polusta tiedostonimi = Dir (kansion polku1 & "*.xlsx")' Viimeisen solun rivinumeron saaminen lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row + 1 count1 = 0 'Kaikkien kansiossa olevien tiedostojen selaaminen Vaikka tiedostonimi "" count1 = count1 + 1 ReDim Säilytä tiedostosarja (1 Laskemaan1) filearray ( count1) = tiedostonimi tiedostonimi = Dir () Wend On Error GoTo last 'Tiedostonimen lisääminen työkirjaan I = 1 UBound (filearray) -soluille (lastrow, 1). Value = folderpath1 & filearray (i) lastrow = lastrow + 1 Next Loppu Jos viimeinen: Lopeta alialueen hakeminen_tiedostolista_kansio () 'Muuttujien ilmoittaminen Dim folder_path merkkijonona Dim fso Objektina, folder1, alikansio1 Objektina' Kansion hakemistopolku folder_path = Sheet1.TextBox1.Value 'Tarkistetaan, sisältääkö kansion polku käänteisviivan viimeisenä merkkinä If right (folder_path, 1) " \ "Sitten folder_path = folder_path &" \ "End If 'Subfolder_files -makron kutsuminen Soita alikansiotiedostot (folder_path, True)' Tiedostojärjestelmäobjektin objektin luominen Aseta fso = CreateObject (" scripting.filesystemobject ") Aseta alikansio1 = fso.getfolder (folder_path) 'Kiertäminen jokaisen alikansion läpi Kullekin kansiolle 1 Alikansioon 1. alikansioihin Soita alikansiotiedostot (kansio1, tosi) Seuraava loppu 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave