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ă oferim 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 unitatea D D, 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): După cum spune numele, care este calea pentru accesarea fișierului. Acesta ar putea fi și numele fișierului, numele folderului sau directorului. Dacă o cale nu este alocată, voi returna o valoare de șir goală, adică „
  • (Atribute): Acesta este, de asemenea, un argument opțional și este posibil să nu îl utilizați foarte des în codificare. Puteți specifica atributul fișierului în (Nume cale), iar funcția DIR caută doar acele fișiere.

De exemplu: Dacă doriți să accesați numai 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

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

Pasul 4: Acum, pentru Nume cale, am atribuit deja o cale variabilei FolderPath, astfel încât să putem furniza direct variabila aici.

Cod:

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

Pasul 5: Acum, trebuie să furnizăm numele fișierului. Utilizând simbolul „Ampersand” (&), atribuiți numele fișierului.

Cod:

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

Pasul 6: utilizați acum metoda WORKBOOKS.OPEN .

Cod:

Sub Dir_Example2 () Dim FolderName as String Dim FileName As String FolderName = "E: VBA Template " FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Caiet de lucru.Open End Sub

Pasul 7: Nume fișier este o combinație între FolderPath și FileName . Deci combinați-le pe acestea două.

Cod:

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

Acum executați acest cod. Se va deschide numele fișierului menționat.

Exemplul # 3 - Mai multe cărți de lucru deschise folosind funcția DIR

De fapt, putem accesa toate registrele de lucru din dosar. Pentru a accesa fiecare fișier, nu putem menționa direct toate numele fișierelor, dar putem folosi caracterul wildcard pentru a ne referi la fișier.

Asteriscul (*) este unul dintre acele caractere wildcard. Identifică orice număr de caractere. De exemplu, dacă doriți să accesați toate fișierele macro din folder, puteți utiliza asteriscul ca metacaracter, adică „* .xlsm *”.

Aici * se va potrivi orice nume de fișier cu extensia fișierului este egală cu „xlsm”.

Cod:

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

Faceți vizibilă fereastra imediată apăsând Ctrl + G.

Acum rulați codul. Vom primi toate numele fișierelor în fereastra imediată.

Articole interesante...