Excel VBA DIR-funktion
Dir er en af de tilgængelige funktioner i VBA. Dir-funktion er til at henvise kataloger i VBA-kode.
Den funktion, der returnerer filen eller katalognavnet, der matcher den givne attribut eller streng, ellers returnerer den første fil eller mappe. Med enkle ord, hvis vi har en mappe ABC og inde i ABC er der en fil XYZ, så kan vi få adgang til XYZ-fil ved hjælp af DIR-funktion i VBA.
Formel til DIR-funktion i Excel VBA
DIR-funktion har følgende syntaks i Excel VBA:
Det har to dele stienavn og attributter.
- Stienavn: Ved navn kan alle forstå, at det er stien til filen, hvor filen faktisk findes. Hvis vi ikke indtaster nogen sti i stienavn, returnerer den en tom streng.
- Attribut: Det er et valgfrit argument, vi bruger ikke meget af dette. Vi kan muligvis bruge dette, når vi vil åbne filen med nedenstående attributter, så VBA ser efter disse filer.
vbArchive | Specificerer arkiver eller sikkerhedskopieringsfiler. |
vbNormal | Normal (standard) eller ingen attributter. |
vbReadOnly | skrivebeskyttede filer |
vbSystem | Systemfiler |
vbVolume | lydstyrke etiket; Hvis du bruger en anden attribut med denne, ignoreres lydstyrkeetiketten. |
vbDirectory | Kataloger eller mapper. |
vbHidden | skjulte filer |
vbAlias | Filnavnet er et alias |
Hvordan bruges DIR-funktion i Excel VBA?
Nedenfor er de forskellige eksempler til brug af DIR-funktion i Excel ved hjælp af VBA-kode.
Du kan downloade denne VBA DIR Excel-skabelon her - VBA DIR Excel-skabelonVBA DIR-funktion - eksempel # 1
I dette eksempel vil vi se, hvordan man får adgang til et filnavn ved hjælp af DIR-funktionen i VBA.
Trin 1: Gå til fanen Udviklere og klik på Visual Basic
Trin 2: Åbn et modul fra menuen Indsæt som vist nedenfor.
Trin 3: For at starte en hvilken som helst makro skal vi først give et navn til makroen med nøgleordet 'sub' som nedenfor.
Kode:
Sub myexample1 () End Sub
Husk, at vi skriver vores kode i "Module1", når vi indtaster "sub myexample ()", automatisk vises "End sub".
Trin 4: Definer en streng ved hjælp af nøgleordet " Dim ", der henviser til dimension. I nedenstående skærmbillede "mystring" er strengnavnet.
Kode:
Sub myexample1 () Dim mystring Som streng End Sub
Husk, hver gang du definerer navnene på datatyper eller programnavne, skal der ikke være noget mellemrum mellem to ord. “Mystring” intet mellemrum mellem “min” og “streng”.
Filen er tilgængelig i en eksempelmappe, der er tilgængelig på skrivebordet, og filnavnet er “KT tracker mine”.
C: \ Users \ cba_13 \ Desktop \ Sample \
Trin 5: Nu skal vi gemme filnavnet i "mystring" vha. Dir-funktionen.
Kode:
Sub myexample1 () Dim mystring Som streng mystring = Dir ("C: \ Brugere \ cba_13 \ Desktop \ Sample \") Slut Sub
I ovenstående skærmbillede i Dir-funktionen har jeg givet filstien eksklusive filnavnet. Da der kun er en fil, returnerer den filnavnet.
Trin 6: Nu med ovenstående trin filnavnet gemt i strengen "mystring". For at få vist filnavnet skal vi vise det gennem en meddelelsesboks. Opret en meddelelsesboks.
Kode:
Sub myexample1 () Dim mystring Som streng mystring = Dir ("C: \ Brugere \ cba_13 \ Desktop \ Sample \") MsgBox (mystring) End Sub
Vi gav instruktionen om at vise dataene i “mystring” gennem meddelelsesboksen, da “mystring” har filnavn, det vil vise filnavnet gennem meddelelsesboksen.
Trin 7: Kør nu koden ved at klikke på knappen Afspil eller ved at trykke på F5-tasten.
VBA DIR-funktion - eksempel # 2
I dette eksempel vil vi se, hvordan man åbner en fil ved hjælp af DIR-funktionen i Excel VBA.
Trin 1: Åbn skærmbilledet med VBA-kode og start med at give programnavnet som “eksempel2” eller ethvert navn, du ønsker.
Kode:
Subeksempel2 () Slut Sub
Trin 2: Definer to strenge med navnene “Foldername” og “Filename”.
Kode:
Subeksempel2 () Dim mappenavn som streng Dim filnavn som streng slut sub
Trin 3: Tildel nu mappestien til mappenavnet.
Kode:
Undereksempel2 () Dim mappenavn som streng Dim filnavn som streng mappenavn = "C: \ brugere \ cba_13 \ skrivebord \ prøve \" slut sub
Trin 4: Tildel filen til “filnavnet” vha. Dir-funktionen. Her brugte vi variablen “Mappenavn”, fordi den har mappestien. Ved hjælp af ampersand føjede vi filnavnet til stien.
Kode:
Undereksempel2 () Dim mappenavn som streng Dim filnavn som streng mappenavn = "C: \ Brugere \ cba_13 \ Desktop \ Sample \" Filename = Dir (Mappenavn & "KT Tracker mine.xlsx") Slut Sub
Nu returnerer Dir-funktionen filnavnet, og den gemmes i variablen "filnavn".
Trin 5: I det forrige eksempel brugte vi meddelelsesfeltet til at se resultaterne. Men i dette ønsker vi at åbne filen, så vi bruger kommandoen “workbooks.open”.
Kode:
Undereksempel2 () Dim mappenavn som streng Dim filnavn som streng mappenavn = "C: \ Brugere \ cba_13 \ Desktop \ Eksempel \" Filnavn = Dir (mappenavn & "KT Tracker mine.xlsx") Arbejdsbøger. Åbn mappenavn & filnavne slut
Trin 6: Kør ovenstående kode, det åbner den tilgængelige fil i mappen "C: \ Brugere \ cba_13 \ Desktop \ Sample \" med filnavnet "KT Tracker mine".
VBA DIR-funktion - eksempel # 3
Nu ser vi programmet for at vide, om en mappe er tilgængelig eller ikke. Jeg har mappen “Data” som vist nedenfor.
Vi er nødt til at kontrollere ved hjælp af Dir-funktionen, om "Data" -mappen er tilgængelig i stien C: \ Brugere \ cba_13 \ Desktop \ Sample \.
Trin 1: Opret et programnavn og definer to strenge med navnene FD og FD1.
Kode:
Subeksempel3 () Dim Fd Som streng Dim Fd1 Som streng End Sub
Trin 2: Tildel mappestien til variablen “Fd”.
Kode:
Undereksempel3 () Dim Fd Som streng Dim Fd1 Som streng Fd = "C: \ Brugere \ cba_13 \ Desktop \ Eksempel \ Data" Slut Sub
Trin 3: Brug nu funktionen Dir til at returnere mappenavnet som vist nedenfor.
Kode:
Subeksempel3 () Dim Fd Som streng Dim Fd1 Som streng Fd = "C: \ Brugere \ cba_13 \ Desktop \ Eksempel \ Data" Fd1 = Dir (Fd, vbDirectory) Slut Sub
Dir-funktionsresultatet skal være mappenavn, og det gemmes i Fd1-strengvariablen. Hvis mappen “Data” ikke er tilgængelig i den respektive mappe, returnerer den ingen streng.
Trin 4: Nu skal vi kontrollere, om Fd1 har en "Data" -mappe eller ej. Brug IF-betingelse til at kontrollere, om Fd1 har strengen “Data” eller ikke. Hvis den er tilgængelig, skal du udskrive sætningen som "Eksisterer".
Kode:
Undereksempel3 () Dim Fd Som streng Dim Fd1 Som streng Fd = "C: \ Brugere \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Hvis Fd1 = "Data" Så MsgBox ("afslutter") Ende Sub
Trin 5: I tilfælde af at Fd1 ikke stemmer overens med "Data" -mappen, udskrives sætningen "Ikke eksisterer" i en anden tilstand.
Kode:
Subeksempel3 () Dim Fd Som streng Dim Fd1 Som streng Fd = "C: \ Brugere \ cba_13 \ Desktop \ Eksempel \ Data" Fd1 = Dir (Fd, vbDirectory) Hvis Fd1 = "Data" Så MsgBox ("afslutter") Else MsgBox ("Ikke afslutter") End Sub
Trin 6: Afslut “If” -løkken som vist på nedenstående skærmbillede.
Kode:
Subeksempel3 () Dim Fd Som streng Dim Fd1 Som streng Fd = "C: \ Brugere \ cba_13 \ Desktop \ Eksempel \ Data" Fd1 = Dir (Fd, vbDirectory) Hvis Fd1 = "Data" Så MsgBox ("afslutter") Else MsgBox ("Ikke afslutter") Slutt, hvis slut sub
Trin 7: Kør koden ved at trykke på F5-tasten eller ved at klikke på knappen Play for at kontrollere, om mappen er tilgængelig eller ikke. Hvis mappen "Data" er tilgængelig i den mappe, returnerer den meddelelsesfeltet med meddelelsen "Eksisterer" som nedenfor.
Trin 8: Skift blot navnet på mappen som Data1.
Undereksempel3 () Dim Fd Som streng Dim Fd1 Som streng Fd = "C: \ Brugere \ cba_13 \ Desktop \ Eksempel \ Data1" Fd1 = Dir (Fd, vbDirectory) Hvis Fd1 = "Data" Så MsgBox ("afslutter") MsgBox ("Ikke afslutter") Slutt, hvis slut sub
Trin 9: Kør koden igen. Nu er resultatet “findes ikke” som vist nedenfor.
Ting at huske
- Argumenterne i Dir-funktionen er valgfri.
- Hvis vi ønsker skjulte filer, mapper eller anden type mapper, skal du nævne dit krav i det andet argument.
- Brug “\” i slutningen af mappenavnet, mens du giver Dir-funktionen til at gå ind i mappen.
- Hvis vi ønsker at ringe til eller åbne flere filer, kan vi bruge wild card-tegnet “*” eller “?”.
Anbefalede artikler
Dette er en guide til VBA DIR-funktion. Her diskuterer vi, hvordan man bruger DIR-funktion i Excel VBA sammen med nogle praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -
- VBA-arbejdsbog
- INDIREKT Funktion i Excel
- VBA Count
- Excel XOR-funktion