Kuidas kasutada VBA DIR-funktsiooni Excelis (7 praktilist näidet)

  • Jaga Seda
Hugh West

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.xlsm

DIR-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.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.