VBA DIR funkcija | Kako koristiti Excel VBA DIR funkciju?

Excel VBA DIR funkcija

VBA DIR funkcija je također poznata i kao funkcija direktorija, ovo je ugrađena funkcija u VBA koja se koristi za dobivanje naziva datoteke zadane datoteke ili mape, ali moramo dati put za datoteku, izlaz koji vraća ovaj funkcija je string jer vraća ime datoteke, ovoj funkciji postoje dva argumenta koji su naziv putanje i atributi.

DIR funkcija vraća prvo ime datoteke u navedenoj putanji mape. Na primjer, na vašem D pogonu ako imate naziv mape zvan 2019, a u toj mapi, ako excel datoteku pod nazivom „2019 Sales“, toj datoteci možete pristupiti pomoću funkcije DIR.

Funkcija "VBA DIR" vrlo je korisna za dobivanje imena datoteke pomoću mape puta.

Sintaksa

Ova funkcija ima dva neobavezna argumenta.

  • [Naziv puta]: Kao što ime govori koji je put do pristupa datoteci. To može biti i naziv datoteke, naziv mape ili direktorija. Ako bilo koji put nije dodijeljen, vratit ću praznu vrijednost niza, tj. ""
  • [Atributi]: Ovo je također neobavezan argument i možda ga nećete često koristiti u kodiranju. Atribut datoteke možete odrediti u [Naziv puta], a DIR funkcija traži samo te datoteke.

Na primjer: Ako želite pristupiti samo skrivenim datotekama, ako želite pristupiti samo datotekama samo za čitanje itd. ... možemo navesti u ovom argumentu. Ispod su atributi koje možemo koristiti.

Primjeri upotrebe VBA DIR funkcije

Ovaj VBA Dir Excel predložak možete preuzeti ovdje - VBA Dir Excel Predložak

Primjer # 1 - Pristup nazivu datoteke pomoću DIR funkcije

Objasnit ću vam jednostavan primjer pristupa nazivu datoteke pomoću funkcije DIR. Slijedite korake u nastavku.

Korak 1: Stvorite ime makronaredbe.

Korak 2: Definirajte varijablu kao String .

Kodirati:

 Sub Dir_Example1 () Priguši MyFile kao niz na kraju Sub 

Korak 3: Sada ćemo ovoj varijabli dodijeliti vrijednost pomoću funkcije DIR .

Kodirati:

 Sub Dir_Example1 () Zatamni MyFile kao niz MyFile = Dir (Kraj Sub 

Korak 4: Sada kopirajte i zalijepite put do mape datoteka na svoje računalo. Spomenite put u dvostrukim navodnicima.

Kodirati:

 Sub Dir_Example1 () Zatamni MyFile kao niz MyFile = Dir ("E: \ VBA Predložak Kraj Sub 

Korak 5: Spomenuo sam svoj put do mape, sada moramo spomenuti i naziv datoteke i njezino proširenje. Da bismo to učinili prvo što moramo učiniti je da trebamo staviti kosu crtu nakon puta (\)

Nakon unosa kose crte trebamo unijeti puno ime datoteke .

Kodirati:

 Sub Dir_Example1 () Priguši MyFile kao niz MyFile = Dir ("E: \ VBA Predložak \ VBA Dir Excel Template.xlsm") Kraj Sub 

Korak 6: Prikažite vrijednost varijable u okviru za poruku.

Kodirati:

 Sub Dir_Example1 () Zatamni MyFile kao niz MyFile = Dir ("E: \ VBA Predložak \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Sada pokrenite kod i pogledajte kakav je rezultat okvira za poruku.

Tako je funkcija DIR vratila ime datoteke s nastavkom datoteke.

Primjer # 2 - Otvorite datoteku pomoću DIR funkcije

Kako sada otvoriti datoteku? Ova funkcija može vratiti naziv datoteke, ali otvaranje te datoteke malo je drugačiji postupak. Slijedite korake u nastavku da biste otvorili datoteku.

Korak 1: Stvorite dvije varijable kao String .

Kodirati:

 Sub Dir_Example2 () Dim Ime mape kao niz Dim ime datoteke kao niz Kraj Sub 

Korak 2: Sada varijabli FolderName dodijelite put do mape.

Kodirati:

 Sub Dir_Example2 () Dim Ime mape kao niz Dim ime datoteke kao niz FolderName = "E: \ VBA Predložak \" Kraj Sub 

Korak 3: Sada za varijablu FileName moramo dobiti naziv datoteke pomoću funkcije DIR .

Kodirati:

 Sub Dir_Example2 () Dim Ime mape kao niz Dim ime datoteke kao niz FolderName = "E: \ VBA Template \" Ime datoteke = Dir (Kraj Sub 

Korak 4: Sada smo za Naziv puta već dodijelili put varijabli FolderPath, tako da ovdje možemo izravno dostaviti varijablu.

Kodirati:

 Sub Dir_Example2 () Dim Ime mape kao niz Dim ime datoteke kao niz FolderName = "E: \ VBA Predložak \" Ime datoteke = Dir (Ime mape Kraj Sub 

Korak 5: Sada moramo navesti naziv datoteke. Korištenjem znaka ampersanda (&) dodijelite naziv datoteke.

Kodirati:

 Sub Dir_Example2 () Dim Ime mape kao niz Dim ime datoteke kao niz FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Kraj Sub 

Korak 6: Sada upotrijebite metodu WORKBOOKS.OPEN .

Kodirati:

 Sub Dir_Example2 () Dim Ime mape kao niz Dim ime datoteke kao niz FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Radne knjige. Otvori Kraj Sub 

Korak 7: Ime datoteke kombinacija je mape i naziva datoteke . Pa kombinirajte ovo dvoje.

Kodirati:

 Sub Dir_Example2 () Dim Ime mape kao niz Dim ime datoteke kao niz FolderName = "E: \ VBA Template \" FileName = Dir (Ime mape & "VBA Dir Excel Template.xlsm") Radne knjige. Otvorite Ime mape i Ime datoteke Kraj Sub 

Sada pokrenite ovaj kod, otvorit će spomenuto ime datoteke.

Primjer # 3 - Otvorite više radnih knjiga pomoću funkcije DIR

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.