Fungsi VBA DIR

Fungsi Excel VBA DIR

Fungsi VBA DIR juga dikenal sebagai fungsi direktori, ini adalah fungsi inbuilt dalam VBA yang digunakan untuk memberi kita nama file dari file atau folder tertentu tetapi kita perlu memberikan jalan untuk file, output yang dikembalikan oleh ini fungsi adalah rentetan kerana mengembalikan nama file, ada dua argumen untuk fungsi ini yang merupakan nama jalan dan atribut.

Fungsi DIR mengembalikan nama fail pertama dalam laluan folder yang ditentukan. Contohnya, di Drive D anda jika anda mempunyai nama folder yang disebut 2019 dan dalam folder itu, jika anda unggul fail bernama "2019 Sales" maka anda dapat mengakses file ini dengan menggunakan fungsi DIR.

Fungsi "VBA DIR" sangat membantu mendapatkan nama fail dengan menggunakan folder pathnya.

Sintaks

Fungsi ini mempunyai dua argumen pilihan.

  • [Path Name]: Seperti namanya jalan untuk mengakses fail itu. Ini bisa berupa nama file, nama folder, atau direktori juga. Sekiranya jalan tidak diberikan, saya akan mengembalikan nilai rentetan kosong iaitu ""
  • [Atribut]: Ini juga merupakan argumen pilihan dan anda mungkin tidak sering menggunakannya dalam pengekodan. Anda boleh menentukan atribut fail di [Path Path] dan fungsi DIR hanya mencari fail tersebut.

Contohnya: Sekiranya anda ingin mengakses fail tersembunyi sahaja, jika anda ingin mengakses fail hanya baca dan lain-lain ... kami boleh menentukan dalam hujah ini. Berikut adalah atribut yang boleh kita gunakan.

Contohnya menggunakan Fungsi DBA VBA

Anda boleh memuat turun Template VBA Dir Excel ini di sini - Templat VBA Dir Excel

Contoh # 1 - Mengakses Nama Fail menggunakan Fungsi DIR

Saya akan menerangkan kepada anda contoh mudah untuk mengakses nama fail menggunakan fungsi DIR. Ikuti langkah di bawah.

Langkah 1: Buat nama makro.

Langkah 2: Tentukan pemboleh ubah sebagai String .

Kod:

 Sub Dir_Contoh1 () Dim MyFile Sebagai String End Sub 

Langkah 3: Sekarang untuk pemboleh ubah ini, kami akan memberikan nilai dengan menggunakan fungsi DIR .

Kod:

 Sub Dir_Contoh1 () Dim MyFile Sebagai String MyFile = Dir (Sub Akhir 

Langkah 4: Sekarang salin dan tampal jalur folder fail di komputer anda. Sebutkan nama jalan dalam petikan ganda.

Kod:

 Sub Dir_Example1 () Dim MyFile Sebagai String MyFile = Dir ("E: \ VBA Templat Akhir Sub 

Langkah 5: Saya telah menyebut jalan saya ke folder, sekarang kita perlu menyebutkan nama fail & pelanjutannya juga. Untuk melakukan perkara pertama yang perlu kita lakukan ialah kita perlu meletakkan garis miring terbalik selepas jalan (\)

Setelah memasuki garis miring terbalik, kita perlu memasukkan nama fail penuh .

Kod:

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

Langkah 6: Tunjukkan nilai pemboleh ubah di kotak mesej.

Kod:

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

Sekarang jalankan kod dan lihat apa hasil kotak mesej.

Oleh itu fungsi DIR mengembalikan nama fail dengan peluasan fail.

Contoh # 2 - Buka Fail dengan menggunakan Fungsi DIR

Sekarang bagaimana kita membuka fail tersebut? Fungsi ini dapat mengembalikan nama fail tetapi membuka fail itu adalah proses yang sedikit berbeza. Ikuti langkah di bawah untuk membuka fail.

Langkah 1: Buat dua pemboleh ubah sebagai String .

Kod:

 Sub Dir_Example2 () Dim FolderName Sebagai String Dim FileName Sebagai String End Sub 

Langkah 2: Sekarang untuk pemboleh ubah FolderName menetapkan laluan folder.

Kod:

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

Langkah 3: Sekarang untuk pemboleh ubah FileName, kita perlu mendapatkan nama fail dengan menggunakan fungsi DIR .

Kod:

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

Langkah 4: Sekarang untuk Path Path kita sudah memberikan jalan ke pemboleh ubah FolderPath, jadi kita boleh membekalkan pemboleh ubah secara langsung di sini.

Kod:

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

Langkah 5: Sekarang kita perlu memberikan nama fail. Dengan menggunakan simbol ampersand (&) berikan nama fail.

Kod:

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

Langkah 6: Sekarang gunakan kaedah WORKBOOKS.OPEN .

Kod:

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

Langkah 7: Nama Fail adalah gabungan FolderPath & FileName . Oleh itu, gabungkan kedua-duanya.

Kod:

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

Sekarang jalankan kod ini ia akan membuka nama fail yang disebutkan.

Contoh # 3 - Buka Beberapa Buku Kerja menggunakan Fungsi 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.