VBA DIR-funktion

Excel VBA DIR-funktion

VBA DIR- funktion är också känd som katalogfunktionen, det här är en inbyggd funktion i VBA som används för att ge oss filnamnet på en viss fil eller en mapp men vi måste ange sökvägen för filen, utgången returneras av denna funktionen är sträng eftersom den returnerar namnet på filen, det finns två argument för denna funktion som är sökvägen och attributen.

DIR-funktionen returnerar det allra första filnamnet i den angivna mappvägen. Till exempel, i din D Drive om du har ett mappnamn som heter 2019 och i den mappen, om du utmärker filen med namnet “2019 Sales” kan du komma åt den här filen med DIR-funktionen.

“VBA DIR” -funktionen är till stor hjälp för att få namnet på filen genom att använda sökvägsmappen.

Syntax

Denna funktion har två valfria argument.

  • [Path Name]: Som namnet säger vad sökvägen till filen är. Detta kan också vara namnet på filen, namnet på mappen eller katalogen. Om någon sökväg inte tilldelas returnerar jag tomt strängvärde, dvs “”
  • [Attribut]: Detta är också ett valfritt argument och du kanske inte använder det så ofta vid kodning. Du kan ange attributet för filen i [Path Name] och DIR-funktionen letar bara efter dessa filer.

Till exempel: Om du bara vill komma åt dolda filer, om du bara vill ha åtkomst till skrivskyddade filer etc ... kan vi ange detta argument. Nedan följer de attribut som vi kan använda.

Exempel för att använda VBA DIR-funktion

Du kan ladda ner denna VBA Dir Excel-mall här - VBA Dir Excel-mall

Exempel nr 1 - Åtkomst till filnamnet med DIR-funktionen

Jag kommer att förklara för dig det enkla exemplet med att komma åt filnamnet med DIR-funktionen. Följ stegen nedan.

Steg 1: Skapa ett makronamn.

Steg 2: Definiera variabeln som sträng .

Koda:

 Sub Dir_Example1 () Dim MyFile som strängänd Sub 

Steg 3: Nu för denna variabel tilldelar vi värde med DIR-funktionen .

Koda:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub 

Steg 4: Kopiera och klistra in filmappsökvägen på din dator. Nämn sökvägen i dubbla citat.

Koda:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Steg 5: Jag har nämnt min väg till mappen, nu måste vi också nämna filnamnet och dess tillägg. För att göra detta första måste vi göra är att vi måste sätta en backslash efter sökvägen (\)

När du har angett backslash måste vi ange hela filnamnet .

Koda:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub 

Steg 6: Visa variabelns värde i meddelandefältet.

Koda:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Kör nu koden och se vad resultatet av meddelandefältet är.

Så DIR-funktionen returnerade filnamnet med filtillägget.

Exempel # 2 - Öppna fil med DIR-funktion

Hur öppnar vi filen nu? Denna funktion kan returnera filnamn men att öppna filen är lite annorlunda. Följ stegen nedan för att öppna filen.

Steg 1: Skapa två variabler som sträng .

Koda:

 Under Dir_Exempel2 () Dimmappnamn som sträng Dimma filnamn som strängavsluta 

Steg 2: Tilldela nu mappvägen för variabeln Mappnamn .

Koda:

 Sub Dir_Example2 () Dimmappnamn som sträng Dimma filnamn som strängmappnamn = "E: \ VBA-mall \" Avsluta sub 

Steg 3: Nu för FileName-variabeln måste vi hämta filnamnet med DIR-funktionen .

Koda:

 Sub Dir_Example2 () Dimmappnamn som sträng Dimma filnamn som strängmappnamn = "E: \ VBA-mall \" Filnamn = Dir (Avsluta sub 

Steg 4: Nu har vi redan för Path Name tilldelat en sökväg till variabeln FolderPath, så att vi direkt kan tillhandahålla variabeln här.

Koda:

 Under Dir_Exempel2 () Dimmappnamn som sträng Dimma filnamn som strängmappnamn = "E: \ VBA-mall \" Filnamn = Dir (mappnamn slutunder 

Steg 5: Nu måste vi ange filnamnet. Genom att använda ampersand-symbolen (&) tilldela filnamnet.

Koda:

 Sub Dir_Example2 () Dimmappnamn som sträng Dimma filnamn som strängmappnamn = "E: \ VBA-mall \" Filnamn = Dir (mappnamn & "VBA Dir Excel-mall.xlsm") Avsluta sub 

Steg 6: Använd nu WORKBOOKS.OPEN metoden.

Koda:

 Sub Dir_Example2 () Dimmappnamn som sträng Dimma filnamn som strängmappnamn = "E: \ VBA-mall \" Filnamn = Dir (mappnamn & "VBA Dir Excel-mall.xlsm") Arbetsböcker. Öppna slutet 

Steg 7: Filnamn är en kombination av FolderPath & FileName . Så kombinera dessa två.

Koda:

 Under Dir_Exempel2 () Dimmappnamn som sträng Dimma filnamn som strängmappnamn = "E: \ VBA-mall \" Filnamn = Dir (mappnamn & "VBA Dir Excel-mall.xlsm") Arbetsböcker. Öppna mappnamn och filnamn Slutunder 

Kör nu den här koden för att öppna det nämnda filnamnet.

Exempel # 3 - Öppna flera arbetsböcker med DIR-funktionen

Actually, we can access all the workbooks in the folder. In order to access each and every file we cannot mention all the file names directly, but we can use the wildcard character to refer the file.

The asterisk (*) is one of those wildcard characters. It identifies any number of characters. For example, if you want to access all the macro files in the folder you can use the asterisk as the wildcard i.e. “*.xlsm*”

Here * will match any file name with the extension of the file is equal to “xlsm”.

Code:

 Sub Dir_Example3() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "*.xlsm*") Do While FileName  "" Workbooks.Open FolderName & FileName FileName = Dir() Loop End Sub 

Now the above code will open all the files in the folder path.

FileName = Dir() the reason why I have used this line because, in order to access the next file in the folder, we have to make the existing file name to nil. The moment we make the existing file name to nil when the loop runs for the second time it will take the next file in the folder.

Example #4 – Get all the File Names in the Folder

Suppose if you want the list of all the file names in the folder we can also do this by using attributes.

Code:

 Sub Dir_Example4() Dim FileName As String FileName = Dir("E:\VBA Template\", vbDirectory) Do While FileName  "" Debug.Print FileName FileName = Dir() Loop End Sub 

Make the immediate window visible by pressing Ctrl + G.

Now run the code we will get all the file names in the immediate window.