Sådan bruger du VBA DIR-funktionen i Excel (7 praktiske eksempler)

  • Del Dette
Hugh West

DIR funktion i VBA viser dig primært mappen eller filerne fra en given mappe. Den kan også returnere den første fil med denne funktion. Denne funktion kan bruges til mange forskellige formål til at hente specifikke filer og mapper. Du skal blot indsætte filens sti i stinavnet for VBA kode. Det kan være vanskeligere at bruge VBA DIR koder. Bare rolig, i denne artikel vil vi vise dig nogle eksempler for en bedre visualisering af brugen af VBA DIR funktion. Jeg håber, at du vil være i stand til at bruge funktionen efter at have læst artiklen. Så lad os komme i gang.

Download arbejdsbog til øvelser

Download følgende arbejdsbog, som vil hjælpe dig med at forstå emnet bedre.

DIR-funktion.xlsm

Introduktion til DIR-funktionen

Resumé:

VBA DIR funktionen returnerer navnet på en fil eller mappe fra en given mappesti. Konventionelt returnerer den den første fil.

Syntaks:

Dir [ (vejnavn, [ attributter ] ) ] ]

Argumenter Forklaring:

Argument Krævet/valgfrit Forklaring
PathName Valgfrit Sti at få adgang til og angiver filen
Attributter Valgfrit Konstant eller numerisk udtryk angiver attributterne for de tilsvarende filer

Der er nogle få foruddefinerede attributter, og de er-

Attribut Navn Beskrivelse
vbNormal Filer uden specifikke attributter
vbReadOnly skrivebeskyttede filer uden attributter
vbHidden Skjulte filer uden attributter
vbSystem Systemfiler uden attributter
vbVolume Mængdeetiket
vbDirectory Kataloger eller mapper uden attributter
vbAlias Det angivne filnavn er et alias

7 eksempler på brug af VBA DIR-funktionen i Excel

Af beskrivelsen kunne du måske have forstået, at den VBA DIR funktionen giver filnavnet ud fra det angivne stinavn. Lad os forstå det ved hjælp af et eksempel. Her har vi oprettet en mappe Exceldemy_Folder for at vise dig forskellige eksempler. Der er forskellige små mapper og filer i denne mappe.

1. Find filnavnet fra stien

I vores mappe kan vi finde en bestemt fil ved at angive stien til filnavnet.

Når du har kopieret filens sti, skal du køre koden.

Derfor skal du gå til Udvikler faneblad>> vælg Visual Basic Derefter skal du gå til Indsæt faneblad>> vælg Modul. I den Generelt dialogboksen, skriver vi koden.

Da vores dagsorden er at finde den Filenavn fra stinavnet, vil vi angive det fulde stinavn (fra selve roden til filen), og vores kode vil være

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

Her i vores kode har vi sat stinavnet som E:\Exceldemy\Salg_af_januar.xlsx

Opdeling af kode:

  • I første omgang erklærede vi en strengvariabel kaldet FN . og output af Dir funktion blev gemt i denne variabel.
  • Dernæst Dir funktionen finder filnavnet og returnerer det fra den angivne sti.
  • Derefter MsgBox indstiller output via beskedboksen. MsgBox returnerer output ved hjælp af en beskedboks.
  • Kør derefter koden med F5 nøgle.

Endelig har vi fundet filen med navnet Salg_af_januar.xlsx .

2. Kontroller, om der findes et bibliotek

Vi kan kontrollere, om der findes en mappe ved hjælp af Dir Lad os skrive koden til at kontrollere, om den Exceldemy mappe findes. Skriv følgende kode i den generelle boks og kør den med F5 nøgle.

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

Opdeling af kode:

  • Vi har erklæret to variabler; PN indeholder det fulde vejnavn til vores kontrolmappe.
  • Her i den Dir funktionen har vi sat to værdier, nemlig stinavn og attributværdien som vbDirectory Denne attributværdi vil hjælpe med at registrere mappen. Og resultatet af denne funktion gemmes i Fil variabel.
  • Derefter kontrolleres det, om variablen er tom eller ej. Hvis vi finder ud af, at variablen ikke er tom, skal vi erklære, at mappen eksisterer via en meddelelsesboks, ellers findes den ikke.

Her er det Exceldemy mappe findes, så vi vil finde " Exceldemy findes ", hvor Exceldemy er navnet på mappen.

3. Opret en mappe, der ikke eksisterer

Du kan oprette en mappe, der ikke findes på din pc. For at gøre dette skal du oprette et vejnavn, der ikke findes i dine mapper. Lad os forestille os, at vi vil oprette en mappe, der hedder Exceldemy_1 Vi vil bruge den MkDir kommando for at oprette mappen, men før det skal vi skrive følgende VBA kode.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " Filmappe findes" Else MkDir PN MsgBox "Der er oprettet en filmappe med navnet" & File End If End Sub End Sub 

Her har vi skrevet en kommando til at oprette en mappe ved hjælp af stinavnet fra Ellers blok i vores kode. Kør koden med den F5 nøgle.

Mappen er blevet oprettet. Lad os se på mappen med mappen. Exceldemy_1 mappe er nu synlig på din computer.

Lignende læsninger:

  • Sådan kalder du en Sub i VBA i Excel (4 eksempler)
  • Returner en værdi i VBA-funktion (både array- og ikke-array-værdier)
  • Brug VBA UCASE-funktionen i Excel (4 eksempler)
  • Sådan bruges TRIM-funktionen i VBA i Excel (Definition + VBA-kode)

4. Find den første fil fra en mappe

Den vigtigste opgave for den Dir funktionen skal finde den første fil i den angivne mappe. Du skal blot angive stinavnet (op til containermappen) i funktionen, og den returnerer den allerførste fil fra den pågældende mappe.

Lad os finde den første fil fra vores Exceldemy Vores kode vil være

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "Første fil: " & FN End Sub 

Du kan se den grundlæggende kode; vi har overført stinavnet til Dir funktion. Nu Kør koden med den F5 finder du den første fil i denne mappe.

5. Find alle filer fra en mappe

I det foregående afsnit har vi set, hvordan man finder det første filnavn fra en mappe. Situationen kan opstå, når du skal finde alle filer fra en bestemt mappe. For at finde alle filer i en bestemt mappe skal du skrive følgende VBA kode.

 Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN FN = Dir() Loop MsgBox ("File List:" & FL) End Sub 

Her er to variabler til at gemme filnavne som en enkelt ( FN ), og som en liste ( FL ). Den Gør mens løkken gentages, indtil der ikke er nogen fil tilbage i mappen, ved hjælp af denne løkke skubber vi hvert filnavn ind i FL variabel.

Udfør koden, og du vil finde alle filerne i mappen, som i billedet nedenfor.

6. Find alle filer og mapper fra en mappe

Vi har i det foregående afsnit nævnt, hvor vi kan finde alle filer. Vi kan også finde alle undermapper i en mappe. For at gøre dette skal du skrive følgende VBA kode, som vi har vedhæftet nedenfor.

 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 

Ændringen i vores kode er blot brugen af attributparametre. Vi har brugt vbDirectory på dette område. Kør koden, og du vil finde alle filer og undermapper i Exceldemy_Folder .

7. Find alle filer af en bestemt type

Brug af den VBA Dir funktionen kan vi finde en hvilken som helst type fil. Lad os undersøge det med et eksempel.

Vi skal finde .csv filer fra vores mappe. Vores kode vil se ud som følgende-

 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 ("Liste over .csv-filer:" & FL) End Sub 

Vi håber, at du har forstået koden, som bruger en lignende mekanisme til at finde filer. I stinavnet har vi brugt et jokertegn ( * ). Denne stjerne (*) angiver, at alle tegn op til et vilkårligt tal kan forekomme. Jokertegnet er blevet brugt på en sådan måde, at filnavnet kan være hvad som helst, men skal være et .csv fil.

Når du kører koden, vil den returnere .csv filer fra vores Exceldemy mappe.

Øvelsesafsnit

Vi har lavet en øvelsesdel på hvert ark i højre side, så du kan øve dig. Du kan gøre det selv.

Konklusion

Det er alt om dagens session. Og det er nogle enkle eksempler på de VBA Dir funktion i Excel. Lad os vide i kommentarfeltet, hvis du har spørgsmål eller forslag. For at få en bedre forståelse, kan du downloade øvelsesarket. Besøg vores websted, Exceldemy , en one-stop Excel-løsningsudbyder, for at finde ud af om forskellige former for Excel-metoder. Tak for din tålmodighed med at læse denne artikel.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.