Trong bài viết này, chúng tôi đã chia sẻ mã VBA để viết một hàm tùy chỉnh để trích xuất tên tệp và tên thư mục từ đường dẫn tệp.

Dữ liệu thô cho ví dụ này chỉ định đường dẫn đầy đủ của một số tệp nhất định.

RawData

Giải thích logic

Trong ví dụ này, chúng tôi đã tạo hàm tùy chỉnh VBA “FileOrFolderName” trả về tên tệp hoặc thư mục dưới dạng đầu ra.

Hàm “FileOrFolderName” nhận hai tham số làm đầu vào. Tham số đầu tiên lấy đường dẫn tệp làm đầu vào. Tham số thứ hai nhận giá trị Boolean làm đầu vào, nếu chúng ta muốn tên tệp là đầu ra thì chúng ta sẽ gán giá trị True cho tham số này và nếu chúng ta muốn tên thư mục làm đầu ra thì chúng ta sẽ gán giá trị Sai cho tham số này.

Để tách tên tệp và tên thư mục khỏi đường dẫn tệp, trước tiên, chúng tôi tìm vị trí xuất hiện lần cuối của dấu phân tách đường dẫn trong đường dẫn tệp. Sau lần xuất hiện cuối cùng của dấu phân cách đường dẫn, chúng ta có thể dễ dàng tách tên tệp và tên thư mục dưới dạng văn bản. Ở bên phải của dấu phân cách đường dẫn là tên tệp và văn bản ở bên trái của dấu phân cách đường dẫn là tên thư mục.

Nếu không có dấu phân tách đường dẫn nào tồn tại trong đường dẫn tệp thì đường dẫn thư mục mặc định được chỉ định làm tên thư mục.

Thực thi chức năng tùy chỉnh

Để sử dụng hàm tùy chỉnh đã xác định, hãy chuyển đến ô C14 và nhập hàm = FileOrFolderName (B14, FALSE) và trong ô D14, nhập hàm = FileOrFolderName (B14, TRUE), trong đó ô B14 chứa đường dẫn tệp.

Ô C14 sẽ cung cấp tên thư mục và ô D14 sẽ cung cấp tên tệp.

ArrowAfterRunningMacro

Vui lòng theo dõi bên dưới để biết mã

Function FileOrFolderName(InputString As String, _

ReturnFileName As Boolean) As String



'Returns the foldername or the filename based on boolean value assigned

Dim i As Integer, FolderName As String, FileName As String

i = 0

'Code used for finding the position of last occurence of path separator

While InStr(i + 1, InputString, Application.PathSeparator) > 0

i = InStr(i + 1, InputString, Application.PathSeparator)

Wend

'Extract the folder path

'If No occurence of path separator is found then assign the default directory path

If i = 0 Then

FolderName = CurDir

Else

FolderName = Left(InputString, i - 1)

End If

'Extracting the file name

FileName = Right(InputString, Len(InputString) - i)

'Returning the folder or file name from function based on ReturnFileName parameter

If ReturnFileName Then

FileOrFolderName = FileName

Else

FileOrFolderName = FolderName

End If

End Function

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]