Kaip naudoti VBA DIR funkciją "Excel" programoje (7 praktiniai pavyzdžiai)

  • Pasidalinti
Hugh West

Svetainė DIR funkcija VBA daugiausia parodo katalogą arba failus iš tam tikro aplanko. Naudojant šią funkciją taip pat galima grąžinti pirmąjį failą. Ši funkcija turi daugybę panaudojimo būdų, norint gauti konkrečius failus ir aplankus. Viskas, ko reikia, tai tiesiog įterpti failo kelią į pathname VBA kodą. Jums gali būti sunkiau naudoti VBA DIR kodai. Nesijaudinkite, šiame straipsnyje parodysime keletą pavyzdžių, kaip geriau vizualizuoti, kaip naudoti VBA DIR funkciją. Tikiuosi, kad perskaitę straipsnį galėsite naudotis šia funkcija. Taigi, pradėkime.

Atsisiųsti praktikos sąsiuvinį

Atsisiųskite šį pratybų sąsiuvinį. Jis padės jums geriau suprasti temą.

DIR Function.xlsm

Įvadas į DIR funkciją

Santrauka:

Svetainė VBA DIR funkcija grąžina failo arba katalogo pavadinimą iš nurodyto aplanko kelio. Įprastai ji grąžina pirmąjį failą.

Sintaksė:

Dir [ (pathname, [ attributes ] ) ]

Argumentai Paaiškinimas:

Argumentas Privalomas / pasirenkamas Paaiškinimas
PathName Pasirinktinai Kelias pasiekti ir nurodo failą
Atributai Pasirinktinai Konstanta arba skaitinė išraiška nurodo sutampančių failų atributus.

Yra keletas iš anksto nustatytų atributų, tai -

Atributo pavadinimas Aprašymas
vbNormal Failai be konkrečių atributų
vbReadOnly Tik skaitymui skirti failai be atributų
vbHidden Paslėpti failai be atributų
vbSystem Sistemos failai be atributų
vbVolume Tūrio etiketė
vbDirectory Katalogai arba aplankai be atributų
vbAlias Nurodytas failo vardas yra slapyvardis

7 VBA funkcijos DIR naudojimo "Excel" programoje pavyzdžiai

Iš aprašymo galėjote suprasti, kad VBA DIR funkcija pateikia failo pavadinimą iš pateikto pathname. Supraskime tai pavyzdžiu. Čia sukūrėme katalogą Exceldemy_Folder parodyti įvairių pavyzdžių. Šiame aplanke yra įvairių nedidelių aplankų ir failų.

1. Raskite failo pavadinimą iš kelio

Savo aplanke galime rasti konkretų failą nurodydami failo vardo kelią.

Nukopijavę failo kelią, turite paleisti kodą.

Todėl eikite į Kūrėjas skirtukas>> pasirinkti "Visual Basic . Tada eikite į Įdėkite skirtukas>> pasirinkite Modulis. Į Bendra dialogo lange įrašome kodą.

Kadangi mūsų darbotvarkė yra surasti Failo pavadinimas iš pathname, nustatysime visą pathname (nuo pat šaknies iki failo) ir mūsų kodas bus

 Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx") MsgBox FN End Sub 

Čia savo kode nustatėme tokį pathname E:\Exceldemy\Sales_of_January.xlsx

Kodo suskirstymas:

  • Iš pradžių deklaravome eilutės kintamąjį, pavadintą FN . Ir išvesties Direktorius funkcija buvo įrašyta į šį kintamąjį.
  • Toliau Direktorius funkcija suranda failo pavadinimą ir grąžina jį iš pateikto kelio.
  • Tada MsgBox nustato išvestį per pranešimų langelį. MsgBox grąžina išvestį naudodamas pranešimų langelį.
  • Tada paleiskite kodą su F5 raktas.

Galiausiai radome failą pavadinimu Sausio mėnesio pardavimai.xlsx .

2. Patikrinkite, ar katalogas egzistuoja

Katalogo egzistavimą galime patikrinti naudodami Direktorius Parašykime kodą, kad patikrintume, ar Exceldemy Bendrajame langelyje įrašykite šį kodą ir paleiskite jį naudodami F5 raktas.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " exists" Else MsgBox "Failas neegzistuoja" End If End Sub 

Kodo suskirstymas:

  • Deklaravome du kintamuosius; PN yra pilnas mūsų tikrinimo katalogo pathname.
  • Čia per Direktorius nustatėme dvi reikšmes - pathname ir atributo reikšmę kaip vbDirectory . Šio atributo reikšmė padės aptikti katalogą. O šios funkcijos išvestis saugoma Failas kintamas.
  • Tada patikriname, ar kintamasis tuščias, ar ne. Jei nustatome, kad kintamasis nėra tuščias, tada apie katalogo egzistavimą paskelbiame pranešimo lange, priešingu atveju, grąžinimo nėra.

Čia Exceldemy katalogas egzistuoja, todėl rasime " Exceldemy egzistuoja ", kur Exceldemy yra aplanko pavadinimas.

3. Sukurkite aplanką, kurio nėra

Galite sukurti aplanką, kurio jūsų kompiuteryje nėra. Tam turite sukurti katalogą, kurio nėra jūsų aplankuose. Įsivaizduokime, kad ketiname sukurti katalogą pavadinimu Exceldemy_1 . Mes naudosime MkDir komanda sukurti katalogą, bet prieš tai turime parašyti šią komandą VBA kodas.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " Failo aplankas egzistuoja" Else MkDir PN MsgBox "Failo aplankas buvo sukurtas su pavadinimu" & File End If End Sub 

Čia mes parašėme komandą, kuri sukuria katalogą, naudodama pathname iš Kitaip kodo bloką. Paleisti kodą su F5 raktas.

Katalogas sukurtas. Pažvelkime į katalogo aplanką. Exceldemy_1 aplankas dabar matomas jūsų kompiuteryje.

Panašūs skaitiniai:

  • Kaip iškviesti "Excel" VBA subkomandą (4 pavyzdžiai)
  • Vertės grąžinimas VBA funkcija (ir masyvo, ir ne masyvo vertės)
  • VBA UCASE funkcijos naudojimas programoje "Excel" (4 pavyzdžiai)
  • Kaip naudoti TRIM funkciją VBA programoje "Excel" (apibrėžimas + VBA kodas)

Pagrindinė užduotis Direktorius funkcija turi surasti pirmąjį failą pateiktame kataloge. Viskas, ką reikia nurodyti funkcijos viduje, yra kelio vardas (iki konteinerio katalogo), ir ji grąžins pirmąjį failą iš to katalogo.

Suraskime pirmąjį failą iš mūsų Exceldemy katalogas. Mūsų kodas bus

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "First File: " & FN End Sub 

Galite matyti pagrindinį kodą; mes perdavėme kelio vardą į Direktorius funkcija. Dabar Paleisti kodą su F5 raktą, šiame kataloge rasite pirmąjį failą.

5. Rasti visus katalogo failus

Ankstesniame skyriuje matėme, kaip rasti pirmąjį failo pavadinimą kataloge. Gali susidaryti situacija, kai reikia rasti visus failus iš konkretaus katalogo. Norėdami rasti visus failus konkrečiame kataloge, turite parašyti šią eilutę VBA kodas.

 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 ("Failų sąrašas:" & FL) End Sub 

Čia pateikiami du kintamieji, skirti failų pavadinimams saugoti kaip vieną ( FN ) ir kaip sąrašą ( FL ). Atlikti, kol ciklas iteruoja tol, kol kataloge nelieka nė vieno failo. FL kintamas.

Įvykdykite kodą ir rasite visus kataloge esančius failus, kaip parodyta toliau pateiktame paveikslėlyje.

6. Rasti visus katalogo failus ir aplankus

Ankstesniame skyriuje minėjome, kur rasti visus failus. Taip pat galime rasti visus aplanko pakatalogius. Norėdami tai padaryti, parašykite VBA žemiau pridėtas kodas.

 Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("File Lst:" & Lst) End Sub 

Mūsų kodo pakeitimas yra tik atributų parametrų naudojimas. Mes naudojome vbDirectory toje srityje. Paleisti kodą ir rasite visus failus bei aplankus Exceldemy_Folder .

7. Rasti visus konkretaus tipo failus

Naudojant VBA Dir funkciją, galime rasti bet kokio konkretaus tipo failą. Panagrinėkime pavyzdį.

Mes ketiname rasti .csv failus iš mūsų katalogo. Mūsų kodas bus toks.

 Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & vbNewLine & FN FN = Dir() Loop MsgBox ("CSV failų sąrašas:" & FL) End Sub 

Tikimės, kad supratote kodą, kuriame naudojamas panašus failų paieškos mechanizmas. Kelio pavadinime naudojome pakaitinį simbolį ( * ). Ši žvaigždutė (*) reiškia, kad gali būti bet koks simbolis iki bet kokio skaičiaus. Pakaitinis simbolis naudojamas taip, kad failo pavadinimas gali būti bet koks, bet turi būti .csv failas.

Kai paleisite kodą, jis grąžins .csv failus iš mūsų Exceldemy katalogas.

Praktikos skyrius

Kiekviename lape dešinėje pusėje pateikėme po praktinį skyrių, kuriame galėsite pasipraktikuoti. Atlikite jį patys.

Išvada

Tai viskas apie šiandienos sesiją. Ir tai yra keletas paprastų pavyzdžių. VBA Dir funkciją "Excel" programoje. Jei turite klausimų ar pasiūlymų, praneškite mums komentarų skiltyje. Kad geriau suprastumėte, atsisiųskite praktikos lapą. Apsilankykite mūsų svetainėje, Exceldemy , vieno langelio principu veikiančio "Excel" sprendimų teikėjo, sužinoti apie įvairius "Excel" metodus. Ačiū už kantrybę skaitant šį straipsnį.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.