Sisukord
The DIR funktsioon VBA näitab teile peamiselt kataloogi või faile antud kaustast. Samuti saab selle funktsiooniga tagastada esimese faili. Sellel funktsioonil on palju kasutusvõimalusi, et saada konkreetseid faile ja kaustu. Kõik, mida vajate, on lihtsalt sisestada faili teekonna tee nime sisse VBA kood. Teil võib olla raskem kasutada VBA DIR koodid. Ärge muretsege, selles artiklis näitame teile mõned näited, kuidas paremini visualiseerida, et kasutada VBA DIR funktsioon. Loodan, et pärast artikli lugemist oskate funktsiooni kasutada. Niisiis, alustame.
Lae alla praktiline töövihik
Laadige alla järgmine harjutustööraamat. See aitab teil teemast paremini aru saada.
DIR Funktsioon.xlsmDIR-funktsiooni tutvustus
Kokkuvõte:
The VBA DIR funktsioon tagastab faili või kataloogi nime antud kaustapolgust. Tavapäraselt tagastab see esimese faili.
Süntaks:
Dir [ (pathname, [ atribuudid ] ] ]
Argumendid Selgitus:
Argument | Kohustuslik/valikuline | Selgitus |
---|---|---|
PathName | Valikuline | Tee juurdepääsu ja määrab faili |
Atribuudid | Valikuline | Konstant või numbriline väljend määrab sobivate failide atribuudid |
On olemas mõned etteantud atribuudid, need on-
Atribuut Nimi | Kirjeldus |
---|---|
vbNormal | Konkreetsete atribuutideta failid |
vbReadOnly | Ainult lugemiseks mõeldud failid ilma atribuutideta |
vbHidden | Varjatud failid ilma atribuutideta |
vbSystem | Atribuutideta süsteemifailid |
vbVolume | Mahtude silt |
vbDirectory | Kataloogid või kaustad ilma atribuutideta |
vbAlias | Määratud failinimi on alias |
7 näidet VBA DIR-funktsiooni kasutamise kohta Excelis
Kirjeldusest võis aru saada, et VBA DIR funktsioon annab faili nime esitatud teekonnanimest. Mõistame seda näite abil. Siin oleme loonud kataloogi Exceldemy_Folder et näidata teile erinevaid näiteid. Selles kaustas on erinevaid väikseid kaustu ja faile.
1. Leidke failinimi teekonnast
Meie kaustas saame konkreetse faili leida, kui deklareerime faili nime tee.
Pärast faili tee kopeerimist tuleb kood käivitada.
Sel põhjusel minge Arendaja tab>> vali Visual Basic . Siis mine Sisesta tab>> valige Moodul. In the Üldine dialoogiboksi, kirjutame koodi.
Kuna meie päevakorras on leida Failinimi teekonnanimest, seame täieliku teekonnanime (päris juurest kuni failini) ja meie kood saab olema
Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Müük_Jaanuar.xlsx") MsgBox FN End Sub
Siin meie koodis oleme seadnud teekonnanimeks E:\Exceldemy\Müük_Jaanuar.xlsx
Koodide lahtimõtestamine:
- Algselt deklareerisime string-muutuja nimega FN Ja väljund Dir funktsioon salvestati sellesse muutujasse.
- Järgnevalt Dir funktsioon leiab faili nime ja tagastab selle esitatud teekonnast.
- Siis on MsgBox määrab väljundi sõnumikasti kaudu. MsgBox tagastab väljundi sõnumikasti abil.
- Seejärel käivitage kood koos F5 võti.
Lõpuks leidsime faili nimega Jaanuari müük.xlsx .
2. Kontrollige kataloogi olemasolu
Me saame kontrollida kataloogi olemasolu, kasutades käsku Dir funktsioon. Kirjutame koodi, et kontrollida, kas Exceldemy kaust on olemas. Kirjutage järgmine kood üldkasti ja käivitage see koos programmiga F5 võti.
Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " eksisteerib" Else MsgBox "Faili ei ole olemas" End If End Sub
Koodide lahtimõtestamine:
- Oleme deklareerinud kaks muutujat; PN sisaldab meie kontrollkataloogi täielikku tee nime.
- Siin sees Dir funktsioonis oleme seadnud kaks väärtust, tee nime ja atribuudi väärtuse kui vbDirectory See atribuudi väärtus aitab tuvastada kataloogi. Ja selle funktsiooni väljund salvestatakse faili Faili muutuv.
- Seejärel kontrollime, kas muutuja on tühi või mitte. Kui leiame, et muutuja ei ole, siis deklareerime kataloogi olemasolu läbi sõnumi kasti, vastasel juhul tagastame, et seda ei ole olemas.
Siin on Exceldemy kataloog on olemas, seega leiame " Exceldemy on olemas ", kus Exceldemy on kausta nimi.
3. Looge kaust, mida ei ole olemas
Saate luua kausta, mida teie arvutis ei ole olemas. Selleks peate looma teekonnanime, mida teie kaustades ei ole. Kujutame ette, et loome kataloogi nimega Exceldemy_1 Me kasutame MkDir käsk kataloogi loomiseks, kuid enne seda peame kirjutama järgmise käsu VBA kood.
Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " Failikaust on olemas" Else MkDir PN MsgBox "Failikaust on loodud nimega" & File End If End Sub
Siin oleme kirjutanud käsu kataloogi loomiseks, kasutades teekonnanime aadressilt Muidu plokk meie koodis. Käivita kood koos F5 võti.
Kataloog on loodud. Vaatame kataloogi kausta. The Exceldemy_1 kaust on nüüd teie arvutis nähtav.
Sarnased lugemised:
- Kuidas kutsuda VBA allprogramme Excelis (4 näidet)
- VBA-funktsiooni väärtuse tagastamine (nii massiivi kui ka mitte-massiivi väärtused)
- Kasutage VBA UCASE funktsiooni Excelis (4 näidet)
- Kuidas kasutada TRIM-funktsiooni VBA-s Excelis (määratlus + VBA-kood)
4. Esimese faili leidmine kataloogist
Peamine ülesanne on Dir funktsioon on leida esimene fail etteantud kataloogist. Kõik, mida peate funktsiooni sees esitama, on tee nimi (kuni konteineri kataloogini) ja see tagastab kõige esimese faili sellest kataloogist.
Leiame esimese faili meie Exceldemy kataloogi. Meie kood on
Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "Esimene fail: " & FN End Sub
Näete põhilist koodi; me oleme edastanud teekonnanime faili Dir funktsioon. Nüüd Käivita kood koos F5 klahvi, leiate esimese faili sellest kataloogist.
5. Kõigi failide leidmine kataloogist
Eelmises jaotises nägime, kuidas leida kataloogist esimene failinimi. Võib tekkida olukord, kui on vaja leida kõik failid konkreetsest kataloogist. Et leida kõik failid konkreetsest kataloogist, tuleb kirjutada järgmine lause VBA kood.
Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("File List:" & FL) End Sub
Siin on kaks muutujat failinimede salvestamiseks ühe ( FN ) ja loeteluna ( FL ). Do While tsükkel itereerib kuni kataloogis ei ole enam ühtegi faili, kasutades seda tsüklit, lükkame iga faili nime sisse FL muutuv.
Käivita kood ja leiad kõik failid kataloogist, nagu alloleval pildil.
6. Kõigi failide ja kaustade leidmine kataloogist
Me mainisime eelmises punktis, kust leida kõik failid. Me võime leida ka kõik alamkaustad kaustast. Selleks kirjutame järgmist VBA kood, mis on lisatud allpool.
Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN = Dir() Loop MsgBox ("File Lst:" & Lst) End Sub
Muudatus meie koodis on lihtsalt atribuutide parameetrite kasutamine. Me oleme kasutanud funktsiooni vbDirectory selles valdkonnas. Käivita kood, ja leiad kõik failid ja alamkaustad Exceldemy_Folder .
7. Leia kõik kindlat tüüpi failid
Kasutades VBA Dir funktsiooniga saame leida mis tahes tüüpi faili. Uurime seda ühe näite abil.
Me leiame .csv failid meie kataloogist. Meie kood on järgmine-
Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("List of .csv Files:" & FL) End Sub
Loodame, et saite aru koodist, mis kasutab sarnast mehhanismi failide leidmiseks. Teekonnanimes kasutasime jokkerit ( * ). See tärn (*) tähistab, et võib esineda mis tahes märk kuni mis tahes numbrini. Metsik märk on kasutatud nii, et failinimi võib olla mis tahes, kuid peab olema .csv faili.
Kui te käivitate koodi, tagastab see koodi .csv faile meie Exceldemy kataloogi.
Praktika sektsioon
Igale lehele on lisatud harjutamise osa paremal pool. Palun tehke seda ise.
Kokkuvõte
See on kõik tänasest seansist. Ja need on mõned lihtsad näited VBA Dir funktsiooniga Excelis. Palun andke meile kommentaarides teada, kui teil on küsimusi või soovitusi. Parema arusaama saamiseks laadige alla harjutusvoldik. Külastage meie veebilehte, Exceldemy , ühe peatuse Exceli lahenduse pakkuja, et saada teada erinevaid Exceli meetodeid. Täname teid kannatlikkuse eest selle artikli lugemisel.