Funcția VBA DIR | Cum se utilizează funcția Excel VBA DIR?

Funcția Excel VBA DIR

Funcția VBA DIR este, de asemenea, cunoscută sub numele de funcție de director, aceasta este o funcție încorporată în VBA care este utilizată pentru a ne oferi numele fișierului unui anumit fișier sau a unui folder, dar trebuie să furnizăm calea pentru fișier, ieșirea returnată de acest funcția este șir, deoarece returnează numele fișierului, există două argumente pentru această funcție, care sunt numele căii și atributele.

Funcția DIR returnează primul nume de fișier din calea folderului specificat. De exemplu, în D Drive dacă aveți un nume de folder numit 2019 și în acel folder, dacă fișierul Excel numit „2019 Vânzări”, atunci puteți accesa acest fișier utilizând funcția DIR.

Funcția „VBA DIR” este foarte utilă în obținerea numelui fișierului utilizând folderul său de cale.

Sintaxă

Această funcție are două argumente opționale.

  • [Nume cale]: Pe măsură ce numele spune care este calea pentru accesarea fișierului. Acesta ar putea fi și numele fișierului, numele folderului sau directorului. Dacă nicio cale nu este alocată, voi returna valoarea șirului gol, adică „”
  • [Atribute]: Acesta este, de asemenea, un argument opțional și este posibil să nu îl folosiți foarte des în codificare. Puteți specifica atributul fișierului în [Nume cale] și funcția DIR caută doar acele fișiere.

De exemplu: Dacă doriți să accesați doar fișiere ascunse, dacă doriți să accesați numai fișiere numai în citire etc ... putem specifica în acest argument. Mai jos sunt atributele pe care le putem folosi.

Exemple de utilizare a funcției VBA DIR

Puteți descărca acest șablon VBA Dir Excel aici - Șablon VBA Dir Excel

Exemplul # 1 - Accesarea numelui fișierului utilizând funcția DIR

Vă voi explica exemplul simplu de accesare a numelui fișierului utilizând funcția DIR. Urmați pașii de mai jos.

Pasul 1: Creați un nume de macro.

Pasul 2: definiți variabila ca Șir .

Cod:

 Sub Dir_Example1 () Dim MyFile As String End Sub 

Pasul 3: Acum pentru această variabilă, vom atribui valoare utilizând funcția DIR .

Cod:

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

Pasul 4: Acum copiați și lipiți calea folderului de fișiere pe computer. Menționați calea în ghilimele duble.

Cod:

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

Pasul 5: Am menționat calea către folder, acum trebuie să menționăm și numele fișierului și extensia acestuia. Pentru a face acest lucru, trebuie să punem o bară inversă după cale (\)

După introducerea barei inversă, trebuie să introducem numele complet al fișierului .

Cod:

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

Pasul 6: Afișați valoarea variabilei în caseta de mesaj.

Cod:

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

Acum executați codul și vedeți care este rezultatul casetei de mesaje.

Deci funcția DIR a returnat numele fișierului cu extensia de fișier.

Exemplul # 2 - Deschideți fișierul utilizând funcția DIR

Cum deschidem fișierul? Această funcție poate returna numele fișierului, dar deschiderea fișierului este un proces puțin diferit. Urmați pașii de mai jos pentru a deschide fișierul.

Pasul 1: Creați două variabile ca Șir .

Cod:

 Sub Dir_Example2 () Dim FolderName as String Dim FileName As String End Sub 

Pasul 2: Acum pentru variabila FolderName atribuiți calea folderului.

Cod:

 Sub Dir_Example2 () Dim FolderName as String Dim FileName As String FolderName = "E: \ Șablon VBA \" End Sub 

Pasul 3: Acum pentru variabila FileName, trebuie să obținem numele fișierului utilizând funcția DIR .

Cod:

 Sub Dir_Example2 () Dim FolderName as String Dim FileName As String FolderName = "E: \ Șablon VBA \" FileName = Dir (End 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.