În acest articol, am creat o procedură care este utilizată pentru afișarea casetei de dialog, care este utilizată pentru navigarea prin folder pentru selectarea folderului.
Acest cod poate fi utilizat împreună cu alte macrocomenzi în care este necesară selectarea folderului în timpul rulării.
Explicație logică
În acest articol, am făcut referire la două funcții API pentru a afișa caseta de dialog pentru navigarea folderului.
Când selectăm un anumit folder folosind browserul de foldere, caseta de dialog returnează calea folderului selectat.
Vă rugăm să urmați codul de mai jos
Opțiune Explicit „Declararea tipului de date utilizator” Folosit de funcția GetFolderName Tip privat 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 'Declararea referinței la funcția API Decl privat Funcție SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderAFO (lB) (Msg As String) As String 'Returnează numele folderului selectat de utilizator Dim bInfo Ca BROWSEINFO, cale As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Tipul de director pentru a returna bInfo .ulFlags = & H1 'Afișează dialogul X = SHBrowseForFolder (bInfo)' Analizează calea rezultatului = Spațiu $ (512) 'Funcția API de apelare r = SHGetPathFromIDList (ByVal X, cale ByVal)' Cod pentru ștergerea spațiilor suplimentare din end of folder name return If r Atunci pos = InStr (cale, Chr (0)) GetFolderName = Stânga (cale, pos - 1) Altfel GetFolderName = "" Sfârșit dacă funcția Sfârșit Sub TestGetFolderName () Dim FolderName Ca șir 'Funcția de apelare GetFolderName FolderName = GetFolderName ("Selectați un folder") Dacă FolderName = "" Apoi MsgBox "Nu ați selectat un folder." Altfel MsgBox "Ați selectat acest folder:" & FolderName End If End Sub
Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail