Innehållsförteckning
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.xlsmIntroduktion 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.