Excel VBA DIR-funktion
Dir är en av de funktioner som finns tillgängliga i VBA. Dir-funktionen är för att hänvisa till kataloger i VBA-kod.
Funktionen som returnerar filen eller katalognamnet som matchar det angivna attributet eller strängen returnerar annars den första filen eller mappen. Med enkla ord, om vi har en mapp ABC och inuti ABC finns det en fil XYZ så kan vi få åtkomst till XYZ-fil med hjälp av DIR-funktion i VBA.
Formel för DIR-funktion i Excel VBA
DIR-funktionen har följande syntax i Excel VBA:
Den har två delar sökväg och attribut.
- Sökväg: Med namnet kan alla förstå att det är sökvägen till filen där filen faktiskt finns. Om vi inte matar in någon väg i söknamnet kommer det att returnera en tom sträng.
- Attribut: Det är ett valfritt argument, vi använder inte mycket av detta. Vi kan använda detta när vi vill öppna filen med attributen nedan. VBA letar efter dessa filer.
vbArchive | Anger arkiv eller säkerhetskopieringsfiler. |
vbNormal | Normal (standard) eller inga attribut. |
vbReadOnly | skrivskyddade filer |
vbSystem | Systemfiler |
vbVolume | volymetikett; Om du använder något annat attribut med det här, ignoreras volymetiketten. |
vbDirectory | Kataloger eller mappar. |
vbHidden | dolda filer |
vbAlias | Filnamn är ett alias |
Hur använder jag DIR-funktion i Excel VBA?
Nedan är de olika exemplen att använda DIR-funktion i Excel med VBA-kod.
Du kan ladda ner denna VBA DIR Excel-mall här - VBA DIR Excel-mallVBA DIR-funktion - Exempel # 1
I det här exemplet ser vi hur du får åtkomst till ett filnamn med DIR-funktionen i VBA.
Steg 1: Gå till fliken Utvecklare och klicka på Visual Basic
Steg 2: Öppna en modul från infoga menyalternativet som visas nedan.
Steg 3: För att starta vilket makro som helst måste vi först ge ett namn till makroen med nyckelordet "sub" enligt nedan.
Koda:
Sub myexample1 () Slut Sub
Kom ihåg att vi skriver vår kod i "Modul1" när vi matar in "sub myexample ()", automatiskt kommer "End sub" att visas.
Steg 4: Definiera en sträng med hjälp av nyckelordet " Dim " som refererar till dimension. I nedanstående skärmdump är "mystring" strängnamnet.
Koda:
Sub myexample1 () Dim mystring As String End Sub
Kom ihåg när du definierar namnen på datatyper eller programnamn bör det inte finnas något avstånd mellan två ord. "Mystring" inget utrymme mellan "min" och "sträng".
Filen är tillgänglig i exempelmappen som är tillgänglig på skrivbordet och filnamnet är "KT tracker mine".
C: \ Users \ cba_13 \ Desktop \ Sample \
Steg 5: Nu måste vi lagra filnamnet i "mystring" med funktionen Dir.
Koda:
Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") End Sub
I ovanstående skärmdump i Dir-funktionen har jag gett filvägen exklusive filnamn. Eftersom det bara finns en fil kommer det att returnera filnamnet.
Steg 6: Nu med ovanstående steg filnamnet lagrat i strängen "mystring". För att visa filnamnet måste vi visa det genom en meddelanderuta. Skapa en meddelanderuta.
Koda:
Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") MsgBox (mystring) End Sub
Vi gav instruktionen att visa data i "mystring" genom meddelanderuta, eftersom "mystring" har filnamn kommer det att visa filnamnet genom meddelanderutan.
Steg 7: Kör nu koden genom att klicka på knappen Spela eller genom att trycka på F5-tangenten.
VBA DIR-funktion - Exempel # 2
I det här exemplet ser vi hur man öppnar en fil med DIR-funktionen i Excel VBA.
Steg 1: Öppna VBA-kodskärmen och börja med att ge programnamnet som "exempel2" eller vilket namn du vill ha.
Koda:
Subexempel2 () Slut Sub
Steg 2: Definiera två strängar med namnen "Mappnamn" och "Filnamn".
Koda:
Subexempel2 () Dim mappnamn som sträng Dim filnamn som sträng slut Sub
Steg 3: Tilldela nu mappvägen till mappnamnet.
Koda:
Subexempel2 () Dimmappnamn som sträng Dim filnamn som strängmappnamn = "C: \ Användare \ cba_13 \ Skrivbord \ Exempel \" Slut Sub
Steg 4: Tilldela filen till "filnamn" med funktionen Dir. Här använde vi variabeln "Mappnamn" eftersom den har mappvägen. Med hjälp av ampersand lägger vi till filnamnet till sökvägen.
Koda:
Subexempel2 () Dim mappnamn som sträng Dim filnamn som sträng mappnamn = "C: \ Användare \ cba_13 \ Skrivbord \ Sample \" Filnamn = Dir (mappnamn & "KT Tracker mine.xlsx") Slut Sub
Nu ger Dir-funktionen filnamnet och det kommer att lagras i variabeln "filnamn".
Steg 5: I föregående exempel använde vi meddelanderutan för att se resultaten. Men i detta vill vi öppna filen, så vi kommer att använda kommandot “workbooks.open”.
Koda:
Subexempel2 () Dim mappnamn som sträng Dim filnamn som sträng mappnamn = "C: \ Användare \ cba_13 \ Skrivbord \ Exempel \" Filnamn = Dir (mappnamn & "KT Tracker mine.xlsx") Arbetsböcker. Öppna mappnamn & filnamn slut Sub
Steg 6: Kör ovanstående kod, den kommer att öppna den tillgängliga filen i mappen "C: \ Användare \ cba_13 \ Desktop \ Sample \" med filnamnet "KT Tracker gruva".
VBA DIR-funktion - Exempel # 3
Nu kommer vi att se programmet för att veta om en mapp är tillgänglig eller inte. Jag har mappen "Data" som visas nedan.
Vi måste kontrollera med hjälp av Dir-funktionen om mappen “Data” är tillgänglig i sökvägen C: \ Användare \ cba_13 \ Desktop \ Sample \.
Steg 1: Skapa ett programnamn och definiera två strängar med namnen FD och FD1.
Koda:
Subexempel3 () Dim Fd As String Dim Fd1 Som String End Sub
Steg 2: Tilldela mappvägen till variabeln "Fd".
Koda:
Subexempel3 () Dim Fd As String Dim Fd1 Som String Fd = "C: \ Användare \ cba_13 \ Desktop \ Exempel \ Data" Slut Sub
Steg 3: Använd nu funktionen Dir för att returnera mappnamnet som visas nedan.
Koda:
Subexempel3 () Dim Fd Som Sträng Dim Fd1 Som Sträng Fd = "C: \ Användare \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Slut Sub
Dir-funktionsresultatet ska vara mappnamn och det kommer att lagras i strängvariabeln Fd1. Om mappen “Data” inte är tillgänglig i respektive mapp kommer den inte att returnera någon sträng.
Steg 4: Nu måste vi kontrollera om Fd1 har en "Data" -mapp eller inte. Använd IF-villkor för att kontrollera om Fd1 har strängen “Data” eller inte. Om det är tillgängligt, skriv sedan uttalandet som ”Existerar”.
Koda:
Subexempel3 () Dim Fd As String Dim Fd1 Som String Fd = "C: \ Användare \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Om Fd1 = "Data" Sedan MsgBox ("Exits") Slut Sub
Steg 5: Om Fd1 inte stämmer med mappen "Data" kommer utskriften "existerar inte" att skrivas ut i annat skick.
Koda:
Subexempel3 () Dim Fd As String Dim Fd1 Som String Fd = "C: \ Användare \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Om Fd1 = "Data" Sedan MsgBox ("Exits") Annars MsgBox ("Not Exits") End Sub
Steg 6: Avsluta “If” -slingan som visas på skärmbilden nedan.
Koda:
Subexempel3 () Dim Fd As String Dim Fd1 Som String Fd = "C: \ Användare \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Om Fd1 = "Data" Sedan MsgBox ("Exits") Annars MsgBox ("Utgår inte") End If End Sub
Steg 7: Kör koden genom att trycka på F5-tangenten eller genom att klicka på Play-knappen för att kontrollera om mappen är tillgänglig eller inte. Om mappen “Data” är tillgänglig i den mappen returnerar den meddelanderutan med meddelandet “Existerar” enligt nedan.
Steg 8: Ändra bara mappens namn som Data1.
Subexempel3 () Dim Fd As String Dim Fd1 Som String Fd = "C: \ Användare \ cba_13 \ Desktop \ Sample \ Data1" Fd1 = Dir (Fd, vbDirectory) Om Fd1 = "Data" Sedan MsgBox ("Exits") Annars MsgBox ("Utgår inte") End If End Sub
Steg 9: Kör koden igen. Nu är resultatet ”Finns inte” som visas nedan.
Saker att komma ihåg
- Argumenten i Dir-funktionen är valfria.
- Om vi vill ha dolda filer, mappar eller olika typer av kataloger, ange ditt krav i det andra argumentet.
- Använd "\" i slutet av mappnamnet medan du ger Dir-funktionen för att gå in i mappen.
- Om vi vill ringa eller öppna flera filer kan vi använda jokerteckenet "*" eller "?".
Rekommenderade artiklar
Detta är en guide till VBA DIR-funktion. Här diskuterar vi hur du använder DIR-funktion i Excel VBA tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -
- VBA-arbetsbok
- INDIREKT Funktion i Excel
- VBA-räkning
- Excel XOR-funktion