Išvardykite failus aplanke naudodami „Microsoft Excel“ VBA

Anonim

Šiame straipsnyje mes sukursime makrokomandą, kad išvardytume visus aplanko failus.

Vykdant makrokomandą, failo pavadinimas kartu su failo keliu bus rodomas pradedant nuo langelio A17.

Loginis paaiškinimas

Šiame straipsnyje mes sukūrėme dvi makrokomandas: „subfolder_files“ ir „getting_filelist_in_folder“.
„Subfolder_files“ makrokomanda kaip įvestis naudoja aplanko kelią ir loginę vertę ir grąžina aplanko failo pavadinimą.

„Getting_filelist_in_folder“ naudojamas makrokomandai „subfolder_files“ iškviesti. Jame pateikiama aplanko kelio vertė makrokomandai, o loginė vertė nustatyta kaip „true“. Be to, kai reikalingi failų pavadinimai antriniuose aplankuose, mes priskiriame loginę vertę „true“.

Kodo paaiškinimas

folder_path = Sheet1.TextBox1.Value
Aukščiau pateiktas kodas naudojamas ištraukti eilutės reikšmę iš teksto laukelio.

Skambinti poaplankio_failai (aplanko_ kelias, tiesa)
Aukščiau pateiktas kodas naudojamas makrokomandai „subfolder_files“ iškviesti. Jis priskiria aplanko kelią ir nustato nuosavybę „include_subfolder“ true.

Nustatykite fso = CreateObject ("scripting.filesystemobject")
Aukščiau pateiktas kodas naudojamas kuriant failų sistemos objektą.

Nustatykite poaplankį1 = fso.getfolder (folder_path)
Aukščiau pateiktas kodas naudojamas apibrėžto aplanko objektui sukurti.

Kiekvienam aplankui1 Pakatalogiuose1.apakopai
Skambinti poaplankio_failai (1 aplankas, tiesa)
Kitas
Aukščiau pateiktas kodas naudojamas norint peržiūrėti visus pagrindinio aplanko poaplankius.

Dir (folderpath1 & "*.xlsx")
Aukščiau pateiktas kodas naudojamas norint gauti „Excel“ failo pavadinimą.

Nors failo pavadinimas ""
skaičius1 = skaičius1 + 1
„ReDim Preserve“ failų sritis (1 suskaičiuoti1)
filearray (skaičius1) = failo pavadinimas
failo pavadinimas = Režisierius ()
Wend

Aukščiau pateiktas kodas naudojamas masyvui sukurti, kurį sudaro visi aplanke esantys failų pavadinimai.

„I = 1“ į „UBound“ (failų schema)
Ląstelės (paskutinė eilutė, 1). Vertė = folderpath1 & filearray (i)
paskutinis = paskutinis + 1
Kitas

Aukščiau pateiktas kodas naudojamas failo pavadinimui masyve priskirti darbo knygai.

Sekite toliau pateiktą kodą

 „Option Explicit Sub subfolder_files“ („folderpath1 As Variant“, „Optional include_subfolder As Boolean“) „Tikrinimas, ar įtraukti poaplankį, ar ne If if_subfolder then“ Deklaruojantys kintamieji Dim failo pavadinimas, filearray () Kaip eilutės Dim paskutinis, count1, i As Integer “Tikrinama, ar aplanko kelyje yra atgalinis brūkšnys kaip paskutinis simbolis Jei teisus (folderpath1, 1) "\" Tada folderpath1 = folderpath1 & "\" End If 'Pirmojo failo failo pavadinimo gavimas nustatyto aplanko kelyje filename = Dir (folderpath1 & "*.xlsx")' Paskutinio langelio eilutės numerio gavimas lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row + 1 count1 = 0 'Visų failų, esančių aplanke, peržiūra, kol failo pavadinimas "" count1 = count1 + 1 ReDim Išsaugoti failų masyvą (1 To count1) count1) = failo pavadinimas failo vardas = Dir () Wend On Error GoTo last 'Pridėti failo pavadinimą prie darbaknygės „i = 1“ į „UBound“ (failų masyvas) langelius (paskutinė, 1). Vertė = „folderpath1“ ir „filearray“ (i) lastrow = lastrow + 1 Next Pabaiga Jei paskutinis: Pabaigti antrinį poskyrį getting_filelist_in_folder () 'Kintamųjų deklaravimas Dim folder_path kaip eilutė Dim fso As Object, folder1, subfolder1 As Object' Aplanko folder_path = Sheet1.TextBox1.Value 'Gauti kelią \ "Tada folder_path = folder_path &" \ "End If 'Skambinimas subfolder_files macro Skambinti subfolder_files (folder_path, True)' Kuriamas failo sistemos objekto objektas Set fso = CreateObject (" scripting.filesystemobject ") Nustatyti poaplankį1 = fso.getfolder (folder_path) „Kiekvieno aplanko peržiūra kiekvienam aplankui 

Jei jums patiko šis tinklaraštis, pasidalykite juo su draugais „Facebook“. Be to, mus galite sekti „Twitter“ ir „Facebook“.

Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime pagerinti savo darbą ir padaryti jį geresnį. Rašykite mums el