Hàm VBA DIR - Cách sử dụng Hàm VBA DIR trong Excel?

Hàm VBA DIR trong Excel

Hàm VBA DIR hay còn được gọi là hàm thư mục, đây là một hàm có sẵn trong VBA dùng để cung cấp cho chúng ta tên tệp của một tệp hoặc một thư mục nhất định nhưng chúng ta cần cung cấp đường dẫn cho tệp, kết quả trả về này hàm là chuỗi vì nó trả về tên của tệp, có hai đối số cho hàm này là tên đường dẫn và thuộc tính.

Hàm DIR trả về tên tệp đầu tiên trong đường dẫn thư mục được chỉ định. Ví dụ: trong D Drive của bạn, nếu bạn có tên thư mục là 2019 và trong thư mục đó, nếu tệp excel của bạn có tên là “Bán hàng năm 2019” thì bạn có thể truy cập tệp này bằng cách sử dụng hàm DIR.

Hàm “VBA DIR” rất hữu ích trong việc lấy tên của tệp bằng cách sử dụng thư mục đường dẫn của nó.

Cú pháp

Hàm này có hai đối số tùy chọn.

  • (Tên đường dẫn): Như tên đã nói, đường dẫn để truy cập tệp là gì. Đây có thể là tên của tệp, tên của thư mục hoặc cả thư mục. Nếu bất kỳ đường dẫn nào không được chỉ định, tôi sẽ trả về một giá trị chuỗi trống, tức là “
  • (Thuộc tính): Đây cũng là một đối số tùy chọn và bạn có thể không sử dụng nó thường xuyên khi viết mã. Bạn có thể chỉ định thuộc tính của tệp trong (Tên đường dẫn) và hàm DIR chỉ tìm kiếm các tệp đó.

Ví dụ: Nếu bạn chỉ muốn truy cập các tệp ẩn, nếu bạn muốn chỉ truy cập các tệp chỉ đọc, v.v.… chúng ta có thể chỉ định trong đối số này. Dưới đây là các thuộc tính chúng tôi có thể sử dụng.

Ví dụ để sử dụng hàm VBA DIR

Ví dụ # 1 - Truy cập Tên tệp bằng Hàm DIR

Tôi sẽ giải thích cho bạn ví dụ đơn giản về cách truy cập tên tệp bằng hàm DIR. Làm theo các bước dưới đây.

Bước 1: Tạo tên macro.

Bước 2: Định nghĩa biến là Chuỗi .

Mã:

Sub Dir_Example1 () Dim MyFile As String End Sub

Bước 3: Bây giờ, đối với biến này, chúng ta sẽ gán giá trị bằng cách sử dụng hàm DIR .

Mã:

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

Bước 4: Bây giờ sao chép và dán đường dẫn thư mục tệp trên máy tính của bạn. Đề cập đến tên đường dẫn trong dấu ngoặc kép.

Mã:

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

Bước 5: Tôi đã đề cập đến đường dẫn của tôi đến thư mục, bây giờ chúng ta cần đề cập đến tên tệp và phần mở rộng của nó. Để làm điều này, điều đầu tiên chúng ta cần làm là chúng ta cần đặt một dấu gạch chéo ngược sau đường dẫn ()

Sau khi nhập dấu gạch chéo ngược, chúng ta cần nhập tên tệp đầy đủ .

Mã:

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

Bước 6: Hiển thị giá trị của biến trong hộp thông báo.

Mã:

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

Bây giờ hãy chạy mã và xem kết quả của hộp thông báo là gì.

Vì vậy, hàm DIR trả về tên tệp có phần mở rộng tệp.

Ví dụ # 2 - Mở tệp bằng cách sử dụng hàm DIR

Bây giờ chúng ta mở tệp như thế nào? Hàm này có thể trả về tên tệp, nhưng việc mở tệp đó là một quá trình khác một chút. Làm theo các bước dưới đây để mở tệp.

Bước 1: Tạo hai biến là Chuỗi .

Mã:

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

Bước 2: Bây giờ, đối với biến FolderName , hãy gán đường dẫn thư mục.

Mã:

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

Step 3: Now, for the FileName variable, we need to get the file name by using the DIR function.

Code:

Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:VBA Template " 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 - Multiple Open 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 to 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

Hiển thị cửa sổ ngay lập tức bằng cách nhấn Ctrl + G.

Bây giờ hãy chạy mã. Chúng tôi sẽ nhận được tất cả các tên tệp trong cửa sổ ngay lập tức.

thú vị bài viết...