Hur man använder VBA DIR-funktionen i Excel (7 praktiska exempel)

  • Dela Detta
Hugh West

DIR funktion i VBA visar huvudsakligen katalogen eller filerna i en viss mapp. Den kan också återge den första filen med den här funktionen. Den här funktionen har många användningsområden för att hämta specifika filer och mappar. Allt du behöver göra är att infoga filvägen i sökvägen för VBA kod. Det kan vara svårare att använda VBA DIR koder. Oroa dig inte, i den här artikeln kommer vi att visa dig några exempel för en bättre visualisering av hur man använder VBA DIR funktionen. Jag hoppas att du kommer att kunna använda funktionen efter att ha läst artikeln. Så, låt oss komma igång.

Ladda ner övningsboken

Ladda ner följande övningsbok, som hjälper dig att förstå ämnet bättre.

DIR Funktion.xlsm

Introduktion till DIR-funktionen

Sammanfattning:

VBA DIR funktionen returnerar namnet på en fil eller katalog från en angiven mappväg. Konventionellt returnerar den den första filen.

Syntax:

Dir [ (sökväg, [ attribut ] ) ] ]

Argument Förklaring:

Argument Obligatoriskt/valfritt Förklaring
PathName Valfritt Sökväg att få tillgång till och anger filen
Egenskaper Valfritt Konstant eller numeriskt uttryck anger attributen för matchande filer

Det finns några få fördefinierade attribut, de är-

Namn på attribut Beskrivning
vbNormal Filer utan särskilda attribut
vbReadOnly Läskraftiga filer utan attribut
vbHidden Dolda filer utan attribut
vbSystem Systemfiler utan attribut
vbVolume Etikett på volymen
vbDirectory Kataloger eller mappar utan attribut
vbAlias Det angivna filnamnet är ett alias

7 exempel på hur du använder VBA-funktionen DIR i Excel

Av beskrivningen kan du ha förstått att det är en VBA DIR funktionen ger filnamnet från det angivna söknamnet. Låt oss förstå det med ett exempel. Vi har skapat en katalog Exceldemy_Folder Det finns olika små mappar och filer i denna mapp.

1. Hitta filnamnet från sökvägen

I vår mapp kan vi hitta en specifik fil genom att ange filnamnets sökväg.

När du har kopierat filens sökväg måste du köra koden.

Därför bör du gå till Utvecklare flik>> välj Visual Basic Gå sedan till Infoga flik>> välj Modul. I Allmänt skriver vi koden.

Eftersom vår agenda är att hitta den Filnamn från söknamnet, kommer vi att ange det fullständiga söknamnet (från själva roten till filen) och vår kod kommer att vara

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

Här i vår kod har vi angett sökvägen som E:\Exceldemy\Sales_of_January.xlsx

Uppdelning av koden:

  • Till en början deklarerade vi en strängvariabel som heter FN . och resultatet av Dir funktionen sparades i denna variabel.
  • Därefter ska Dir funktionen hittar filnamnet och returnerar det från den angivna sökvägen.
  • Då är det MsgBox ställer in utmatningen via meddelanderutan. MsgBox returnerar utdata med hjälp av en meddelanderuta.
  • Kör sedan koden med koden F5 nyckel.

Slutligen har vi hittat filen som heter Försäljning_av_januari.xlsx .

2. Kontrollera att en katalog finns

Vi kan kontrollera att en katalog finns med hjälp av Dir funktionen. Låt oss skriva koden för att kontrollera om den Excellent mappen finns. Skriv ned följande kod i den allmänna rutan och kör den med programmet F5 nyckel.

 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 "Filen finns inte" End If End Sub 

Uppdelning av koden:

  • Vi har deklarerat två variabler; PN innehåller det fullständiga sökvägen till vår kontrollkatalog.
  • Här inom Dir har vi angett två värden, sökvägsnamn och attributvärdet som vbDirectory Detta attributvärde kommer att hjälpa till att upptäcka katalogen. Och resultatet av denna funktion lagras i Fil variabel.
  • Om variabeln inte är tom eller ej, meddelar vi att katalogen finns i en meddelanderuta, annars finns den inte.

Här kan Excellent finns, så vi kommer att hitta " Exceldemy finns ", där Excellent är namnet på mappen.

3. Skapa en mapp som inte finns

Du kan skapa en mapp som inte finns på din dator. För detta måste du skapa ett söknamn som inte finns i dina mappar. Låt oss anta att vi ska skapa en katalog som heter Exceldemy_1 Vi kommer att använda MkDir för att skapa katalogen, men innan dess måste vi skriva följande VBA kod.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " Filmapp finns" Else MkDir PN MsgBox "En filmapp har skapats med namnet" & File End If End Sub 

Här har vi skrivit ett kommando för att skapa katalogen med hjälp av sökvägen från Annat block i vår kod. Kör koden med den F5 nyckel.

Katalogen har skapats. Låt oss titta på katalogmappen. Den Exceldemy_1 är nu synlig på din dator.

Liknande läsning:

  • Hur man anropar en Sub i VBA i Excel (4 exempel)
  • Återge ett värde i en VBA-funktion (både array- och icke-array-värden)
  • Använd VBA UCASE-funktionen i Excel (4 exempel)
  • Hur man använder TRIM-funktionen i VBA i Excel (definition + VBA-kod)

4. Hitta den första filen i en katalog

Den främsta uppgiften för Dir Allt du behöver ange i funktionen är sökvägen (upp till behållarkatalogen), och den returnerar den allra första filen i den katalogen.

Låt oss hitta den första filen från vår Exceldemy vår kod kommer att vara

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "Första filen: " & FN End Sub 

Du kan se den grundläggande koden; vi har skickat sökvägen till Dir funktion. Nu Kör koden med den F5 hittar du den första filen i den här katalogen.

5. Hitta alla filer i en katalog

I föregående avsnitt har vi sett hur man hittar det första filnamnet i en katalog. Situationen kan uppstå när du behöver hitta alla filer i en viss katalog. För att hitta alla filer i en viss katalog måste du skriva följande VBA kod.

 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 

Här är två variabler för att lagra filnamnen som en enda ( FN ), och som en lista ( FL ). Gör medan loop itererar tills ingen fil finns kvar i katalogen, med hjälp av den här loopen lägger vi in varje filnamn i FL variabel.

Kör koden och du hittar alla filer i katalogen, som i bilden nedan.

6. Hitta alla filer och mappar i en katalog

I föregående avsnitt har vi nämnt var vi kan hitta alla filer. Vi kan också hitta alla undermappar i en mapp. För att göra detta skriver du följande VBA koden som vi bifogar nedan.

 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 

Förändringen i vår kod är bara användningen av attributparametrar. Vi har använt vbDirectory på det området. Kör koden, och du hittar alla filer och undermappar i Exceldemy_Folder .

7. Hitta alla filer av en viss typ

Användning av VBA Dir funktionen kan vi hitta en viss typ av fil. Låt oss utforska detta med ett exempel.

Vi kommer att hitta .csv filer från vår katalog. Vår kod kommer att se ut på följande sätt-

 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 ("Lista över .csv-filer:" & FL) End Sub 

Vi hoppas att du har förstått koden, som använder en liknande mekanism för att hitta filer. I sökvägen använde vi ett jokertecken ( * ). Denna asterisk (*) anger att alla tecken upp till alla siffror kan förekomma. Jokertecknet har använts på ett sådant sätt att filnamnet kan vara vad som helst, men måste vara ett .csv fil.

När du kör koden kommer den att återge .csv filer från vår Excellent katalog.

Övningssektionen

Vi har gjort ett övningsavsnitt på varje blad på höger sida för att du ska kunna öva dig.

Slutsats

Det är allt om dagens session. Och det här är några enkla exempel på de VBA Dir funktionen i Excel. Meddela oss i kommentarsfältet om du har några frågor eller förslag. För att få en bättre förståelse kan du ladda ner övningsbladet. Besök vår webbplats, Excellent , en leverantör av Excel-lösningar, för att få information om olika typer av Excel-metoder. Tack för ditt tålamod med att läsa den här artikeln.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.