VBA DIR-funksjon | Hvordan bruker jeg Excel VBA DIR-funksjon?

Excel VBA DIR-funksjon

VBA DIR- funksjon er også kjent som katalogfunksjonen, dette er en innebygd funksjon i VBA som brukes til å gi oss filnavnet til en gitt fil eller en mappe, men vi må oppgi banen til filen, utdataene returneres av dette funksjonen er streng når den returnerer navnet på filen, det er to argumenter for denne funksjonen som er stienavnet og attributtene.

DIR-funksjonen returnerer det aller første filnavnet i den angitte mappebanen. For eksempel, i D-stasjonen din, hvis du har et mappenavn som heter 2019, og i den mappen, hvis du utmerker filen med navnet “2019 Sales”, kan du få tilgang til denne filen ved å bruke DIR-funksjonen.

“VBA DIR” -funksjonen er veldig nyttig for å få navnet på filen ved å bruke sti-mappen.

Syntaks

Denne funksjonen har to valgfrie argumenter.

  • [Path Name]: Som navnet sier hva banen for å få tilgang til filen er. Dette kan også være navnet på filen, navnet på mappen eller katalogen. Hvis en bane ikke er tildelt, returnerer jeg tom strengverdi, dvs. "" "
  • [Attributter]: Dette er også et valgfritt argument, og du kan ikke bruke dette veldig ofte i koding. Du kan spesifisere attributtet til filen i [Path Name], og DIR-funksjonen leter bare etter disse filene.

For eksempel: Hvis du bare vil ha tilgang til skjulte filer, hvis du bare vil ha tilgang til skrivebeskyttede filer osv ... kan vi spesifisere i dette argumentet. Nedenfor er attributtene vi kan bruke.

Eksempler på bruk av VBA DIR-funksjon

Du kan laste ned denne VBA Dir Excel-malen her - VBA Dir Excel-mal

Eksempel nr. 1 - Få tilgang til filnavnet ved hjelp av DIR-funksjonen

Jeg vil forklare deg det enkle eksemplet på å få tilgang til filnavnet ved hjelp av DIR-funksjonen. Følg trinnene nedenfor.

Trinn 1: Opprett et makronavn.

Trinn 2: Definer variabelen som streng .

Kode:

 Sub Dir_Example1 () Dim MyFile Som String End Sub 

Trinn 3: Nå for denne variabelen vil vi tilordne verdi ved å bruke DIR-funksjonen .

Kode:

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

Trinn 4: Kopier og lim inn filmappestien på datamaskinen din. Nevn stienavnet i dobbelt anførselstegn.

Kode:

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

Trinn 5: Jeg har nevnt banen til mappen, nå må vi også nevne filnavnet og dets utvidelse. For å gjøre dette første vi trenger å gjøre er at vi må sette et tilbakeslag etter banen (\)

Etter at vi har angitt tilbakeslag, må vi angi hele filnavnet .

Kode:

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

Trinn 6: Vis verdien av variabelen i meldingsboksen.

Kode:

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

Kjør nå koden og se hva resultatet av meldingsboksen er.

Så DIR-funksjonen returnerte filnavnet med filtypen.

Eksempel 2 - Åpne fil ved hjelp av DIR-funksjonen

Nå hvordan åpner vi filen? Denne funksjonen kan returnere filnavnet, men å åpne den filen er litt annerledes. Følg trinnene nedenfor for å åpne filen.

Trinn 1: Lag to variabler som streng .

Kode:

 Under Dir_eksempel2 () Dim mappnavn som streng Dim filnavn som streng slutt sub 

Trinn 2: Nå for Mappe variabel tilordne mappebanen.

Kode:

 Sub Dir_Example2 () Dim mappnavn som streng Dim filnavn som streng mappnavn = "E: \ VBA mal \" Slutt sub 

Trinn 3: Nå for FileName-variabelen, må vi få filnavnet ved hjelp av DIR-funksjonen .

Kode:

 Underdir_eksempel2 () Dim mappnavn som streng Dim filnavn som streng mappnavn = "E: \ VBA-mal \" Filnavn = Dir (slutt sub 

Step 4: Now for Path Name we have already assigned a path to the variable FolderPath, so we can directly supply the variable here.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName End Sub 

Step 5: Now we need to supply the file name. By using the ampersand symbol (&) assign the file name.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Step 6: Now use the WORKBOOKS.OPEN method.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub 

Step 7: File Name is a combination of FolderPath & FileName. So combine these two.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

Now run this code it will open the mentioned file name.

Example #3 – Open Multiple Workbooks using DIR Function

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.