Hàm Lấy Tên File Trong Excel

Trong nội dung bài viết Hàm DIR vào VBA (Phần 1) timnhaviet.vn.vn đã giới thiệu cho chính mình về phong thái áp dụng cũng tương tự cú pháp hàm DIR trong VBA. Bài viết tiếp sau đây timnhaviet.vn.vn đã ra mắt cho mình một trong những ví dụ về hàm DIR trong VBA.

Bạn đang xem: Hàm lấy tên file trong excel


Trong bài viết hàm DIR trong VBA (Phần 2) sau đây timnhaviet.vn.vn đã giới thiệu cho mình một vài ví dụ về hàm DIR trong VBA. Ngoài ra độc giả rất có thể bài viết liên quan một vài bài viết đã gồm bên trên timnhaviet.vn.vn để khám phá về FileSystemObject (FSO) trong VBA là gì nhé.

1. Ví dụ về hàm DIR vào VBA

Dưới đấy là một vài ví dụ về hàm DIR trong VBA:

Ví dụ 1: Lấy thương hiệu tệp tin tự mặt đường dẫn

Nếu bao gồm đường dẫn file, bạn cũng có thể sử dụng hàm DIR để lấy tên của tệp tin từ bỏ đó.

Ví du, đoạn mã tiếp sau đây trả về thương hiệu của file với hiển thị tên file trong hộp thông báo:

Sub laytenfile()

Dyên ổn tentệp tin As String

FileName = Dir("C:UserssumitDesktopTestExcel File A.xlsx")

MsgBox ten file

End Sub

Đoạn mã trên áp dụng đổi thay "tenfile" để lưu ten file nhưng mà hàm DIR trả về. Sau đó áp dụng hộp thông tin để hiển thị thương hiệu tệp tin như hình dưới đây:

*

Trong ngôi trường hợp nếu như file không vĩnh cửu, hàm DIR vẫn trả về chuỗi trống rỗng.

lấy một ví dụ, trong đoạn mã tiếp sau đây họ thực hiện lệnh If Then Else nhằm bình chọn coi tệp tin tất cả lâu dài hay không. Nếu tệp tin ko mãi sau, nó đang hiển thị hộp thông báo hẳn nhiên ngôn từ thông báo tệp tin không vĩnh cửu.

Sub kiemtrafiletontai ()

Dyên ổn tentệp tin As String

FileName = Dir("C:UserssumitDesktopTestExcel File A.xlsx")

If FileName "" Then

MsgBox tenfile

Else

MsgBox "tệp tin khong ton tai"

End If

End Sub

lấy một ví dụ 2: Kiểm tra tlỗi mục bao gồm vĩnh cửu hay là không cùng tạo thành tlỗi mục

Đoạn mã sau đây soát sổ xem thỏng mục Test bao gồm trường thọ hay là không.

Hộp thông báo được áp dụng nhằm hiện thông báo tlỗi mục tất cả sống thọ hay là không tồn tại:

Sub CheckDirectory()

Dlặng duongdan As String

Dlặng CheckDir As String

PathName = "C:UserssumitDesktopTest"

CheckDir = Dir(tenduongdan, vbDirectory)

If CheckDir "" Then

MsgBox CheckDir & " ton tai"

Else

MsgBox "thu muc khong ton tai"

End If

End Sub

Nếu ước ao bạn cũng có thể điều khiển đoạn mã bên trên để đánh giá xem tlỗi mục tất cả vĩnh cửu hay không, nếu như thư mục ko mãi mãi, chúng ta cũng có thể sử dugnj VBA để chế tác tlỗi mục đó.

Đoạn mã dưới đây thực hiện hàm MkDir nhằm chế tạo ra tlỗi mục vào trường vừa lòng nếu như tlỗi mục ko tồn tại:

Sub taothumuc()

Dyên ổn tenduongdan As String

Dyên CheckDir As String

PathName = "C:UserssumitDesktopTest"

CheckDir = Dir(tenduongdan, vbDirectory)

If CheckDir "" Then

MsgBox CheckDir & " thu muc ton tai khong"

Else

MkDir PathName

MsgBox "tao thu muc moi cung ten" và CheckDir

End If

End Sub

lấy ví dụ 3: Lấy thương hiệu toàn bộ những file cùng thỏng mục trong một tlỗi mục

Để mang danh sách thương hiệu tất cả những tệp tin cùng thư mục trong một thư mục, bạn có thể sử dụng hàm DIR.

Đoạn mã sau đây liệt kê list thương hiệu tất cả các tệp tin với thỏng mục vào tlỗi mục Test (nằm trong đường dẫn - C:UserssumitDesktopTest).

Sử dụng Debug.Print để hiển thị tên tệp tin, thư mục vào cửa sổ Immediate. Ngoài ra bạn có thể thực hiện nhằm liệt kê tên trong vỏ hộp thông tin hoặc cột Excel:

Sub laytatcatenfile&thumuc()

Dyên ổn tenfile As String

tenfile = Dir("C:UserssumitDesktopTest", vbDirectory)

Do While tenfile ""

Debug.Print tenfile

Tenfile = Dir()

Loop

End Sub

Vòng lặp Do While được thực hiện trong khúc mã trên nhằm liên tục cho tới khi toàn bộ những tệp tin và thỏng mục vào băng thông vẫn đến được hiển thị. Nếu không còn file / thỏng mục nào nữa, tenfile đã là chuỗi rỗng với vòng lặp vẫn dừng lại.

Xem thêm: Hệ Thống Mrt Là Gì : Những Điều Thú Vị Về Hệ Thống Tàu Điện Hiện Đại Ở Singapore

lấy ví dụ như 4: Lấy tên toàn bộ các file trong một thư mục

Sử dụng đoạn mã tiếp sau đây để mang thương hiệu toàn bộ các tệp tin vào một thư mục (ché không hẳn thương hiệu của những tlỗi mục con):

Sub laytatcatenfile()

Dim tentệp tin As String

tenfile = Dir("C:UserssumitDesktopTest")

Do While tenfile ""

Debug.Print FileName

tentệp tin = Dir()

Loop

End Sub

Đoạn mã này giống như như đoạn mã được sử dụng trong ví dụ 3, tuy nhiên bao gồm tinh chỉnh một chút.

Trong đoạn mã này bọn họ không chỉ định và hướng dẫn vbDirectory trong hàm DIR. Nếu họ hướng dẫn và chỉ định vbDirectory, nó đã trả về thương hiệu của toàn bộ các file tương tự như thỏng mục. Nếu không những định vbDirectory, hàm DIR chỉ trả về tên của các file.

Lưu ý: Nếu hy vọng mang tên của tất cả các tệp tin vào thỏng mục chính cùng những tlỗi mục bé, bọn họ bắt buộc thực hiện hàm DIR (vì chưng hàm không phải đệ quy). Để làm cho được điều này, chúng ta có thể sử dụng Power nguồn Query (không nên mã) hoặc thực hiện File System Object vào VBA (bao gồm đệ quy).

ví dụ như 5: Lấy tên toàn bộ các thư mục nhỏ trong một tlỗi mục

Đoạn mã dưới đây đã đem tên tất cả thương hiệu của các thư mục con trong tlỗi mục được chỉ định.

Bằng biện pháp áp dụng hàm GetAtr trong VBA, chúng ta cũng có thể soát sổ coi thương hiệu được trả về vị hàm DIR là tên gọi tệp tin hay tên tlỗi mục:

Sub laytenthumucnhỏ ()

Dlặng tentệp tin As String

Dyên tenduongdan As String

PathName = "C:UserssumitDesktopTest"

Tenfile = Dir(tenduongdan, vbDirectory)

Do While tenfile ""

If GetAttr(tenduongdan và tenfile) = vbDirectory Then

Debug.Print tenfile

End If

FileName = Dir()

Loop

End Sub

Chúng ta lại sử dụng Debug.Print để mang thương hiệu trong hành lang cửa số Immediate. Hình như chúng ta có thể đem thương hiệu trong vỏ hộp thông báo hoặc trong Excel bằng cách sửa thay đổi mã đến tương xứng.

lấy ví dụ như 6: Lấy thương hiệu file Excel đầu tiên vào tlỗi mục

Với hàm DIR, chúng ta có thể chỉ định và hướng dẫn phần không ngừng mở rộng tệp tin hoặc tiền tố / hậu tố bất kỳ cơ mà họ ước ao vào thương hiệu file được trả về.

Đoạn mã sau đây hiển thị tên của tệp tin Excel thứ nhất vào thỏng mục Test:

Sub laytenfiledautien()

Dlặng tentệp tin As String

Dim tenduongdan As String

Tenduongdan = "C:UserssumitDesktopTest"

Tenfile= Dir(tenduongdan & "*.xls*")

MsgBox tenfile

End Sub

Lưu ý: Trong đoạn mã bên trên họ thực hiện *.xls* (lốt hoa thị sinh hoạt cả hai bên). Như vậy nhằm bảo đảm an toàn toàn bộ những phiên bản tệp tin Excel đầy đủ được soát sổ (.xls, xlsx, .xlsm, .xlsb).

ví dụ như 7: Lấy thương hiệu của tất cả các file Excel trong một tlỗi mục

Sử dụng đoạn mã dưới đây để mang thương hiệu của toàn bộ các tệp tin Excel vào thỏng mục Test:

Sub laytatcatenfile()

Dyên ổn tenthumuc As String

Dyên tentệp tin As String

Tenthumuc = "C:UserssumitDesktopTest"

Tentệp tin = Dir(FolderName và "*.xls*")

Do While tentệp tin ""

Debug.Print tenfile

Tenfile = Dir()

Loop

End Sub

Mặc dù hàm DIR chỉ trả về tên của tệp tin Excel trước tiên, vày họ gọi lại hàm trong khoảng lặp, hàm sẽ trải qua toàn bộ những tệp tin và trả về thương hiệu tất cả những tệp tin Excel.

https://timnhaviet.vn/ham-dir-trong-vba-phan-2-45664n.aspx vì thế bài viết bên trên phía trên timnhaviet.vn.vn vừa giới thiệu cho chính mình một trong những ví dụ về hàm DIR trong VBA, tiếp theo bài Hàm DIR vào VBA phần 1 đã được chúng tôi ra mắt trước đó . Bên cạnh đó ví như bao gồm bất kỳ vướng mắc nào nên câu trả lời, độc giả có thể để lại chủ kiến của chính bản thân mình vào phần phản hồi bên dưới bài viết nhé.

Leave a Reply

Your email address will not be published. Required fields are marked *