Brskanje po mapi za izbiro mape z uporabo VBA v programu Microsoft Excel

Anonim

V tem članku smo ustvarili postopek, ki se uporablja za prikaz pogovornega okna, ki se uporablja za brskanje po mapi za izbiro mape.

To kodo lahko uporabite skupaj z drugimi makri, kjer je med izvajanjem potrebna izbira mape.

Logična razlaga

V tem članku smo se sklicevali na dve funkciji API za prikaz pogovornega okna za brskanje po mapi.

Ko z brskalnikom map izberemo katero koli določeno mapo, se v pogovornem oknu vrne pot izbrane mape.

Za kodo sledite spodaj

 Možnost Eksplicitno 'Razglasitev podatkovnega tipa uporabnika' Uporablja funkcija GetFolderName Zasebna vrsta 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 Funkcija SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) Kot dolga zasebna razglasitev funkcije SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseForFoForFolder (Sporočilo kot niz) As String 'Vrne ime mape, ki jo je izbral uporabnik Dim bInfo As BROWSEINFO, pot As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Vrsta imenika za vrnitev bInfo .ulFlags = & H1 'Prikažite pogovorno okno X = SHBrowseForFolder (bInfo)' Razčlenite pot do rezultata = Preskok $ (512) 'Funkcija API -ja za klic r = SHGetPathFromIDList (ByVal X, pot ByVal)' Koda za brisanje dodatnih presledkov v konec mape vrnitev If r Potem pos = InStr (pot, Chr (0)) GetFolderName = Levo (pot, poz - 1) Else GetFolderName = "" End If End Funkcija Sub TestGetFolderName () Dim FolderName As String 'Klicna funkcija GetFolderName FolderName = GetFolderName ("Izberite mapo") Če FolderName = "" Potem MsgBox "Niste izbrali mape." Sicer MsgBox "Izbrali ste to mapo:" & Ime mape Konec, če je konec pod 

Če vam je bil ta blog všeč, ga delite s prijatelji na Facebooku. Prav tako nam lahko sledite na Twitterju in Facebooku.

Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo svoje delo in ga izboljšamo za vas. Pišite nam na spletnem mestu e -pošte