Duyệt thư mục để chọn thư mục bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi đã tạo ra thủ tục được sử dụng để hiển thị hộp thoại, được sử dụng để duyệt qua thư mục để chọn thư mục.
Mã này có thể được sử dụng cùng với các macro khác khi cần lựa chọn thư mục trong thời gian chạy.
Giải thích logic
Trong bài viết này, chúng tôi đã đề cập đến hai hàm API để hiển thị hộp thoại duyệt thư mục.
Khi chúng ta chọn bất kỳ thư mục cụ thể nào bằng trình duyệt thư mục, hộp thoại trả về đường dẫn của thư mục đã chọn.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit 'Declaring user data type 'Used by the function GetFolderName Private Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type 'Declaring reference to API Function Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long Function GetFolderName(Msg As String) As String 'Returns the name of the folder selected by the user Dim bInfo As BROWSEINFO, path As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0 'Type of directory to return bInfo.ulFlags = &H1 'Display the dialog X = SHBrowseForFolder(bInfo) 'Parse the result path = Space$(512) 'Calling API function r = SHGetPathFromIDList(ByVal X, ByVal path) 'Code for deleting extra spaces in the end of folder name return If r Then pos = InStr(path, Chr(0)) GetFolderName = Left(path, pos - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName() Dim FolderName As String 'Calling function GetFolderName FolderName = GetFolderName("Select a folder") If FolderName = "" Then MsgBox "You didn't select a folder." Else MsgBox "You selected this folder: " & FolderName End If End Sub
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]