Naršymo aplankas, skirtas pasirinkti aplanką naudojant „Microsoft Excel“ VBA

Anonim

Šiame straipsnyje mes sukūrėme procedūrą, kuri naudojama dialogo langui rodyti, kuri naudojama naršant aplanką, kuriame pasirenkamas aplankas.

Šis kodas gali būti naudojamas kartu su kitomis makrokomandomis, kai vykdymo metu reikia pasirinkti aplanką.

Loginis paaiškinimas

Šiame straipsnyje mes nurodėme dvi API funkcijas, kad būtų rodomas naršymo aplanko dialogo langas.

Kai pasirenkame bet kurį konkretų aplanką naudodami aplankų naršyklę, dialogo langas grąžina pasirinkto aplanko kelią.

Sekite toliau pateiktą kodą

 Parinktis Aiškiai „Deklaruoti vartotojo duomenų tipą“, kurią naudoja funkcija GetFolderName Privatus tipas 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 “Deklaracijos nuoroda į API funkciją Funkcija SHGetPathFromIDList Lib "shell32.dll" _ Pseudonimas "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Declare Function SHBrowseForFolder Lib "shell32.dll" _ Pseudonimas "SHBrowseForFolderAFF Liftas (Msg As String) As String 'Grąžina vartotojo pasirinkto aplanko pavadinimą Dim bInfo Kaip BROWSEINFO, kelias As String, r Kaip ilgai Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Grąžinamo katalogo tipas bInfo .ulFlags = & H1 'Rodyti dialogo langą X = SHBrowseForFolder (bInfo)' Analizuoti rezultato kelią = Space $ (512) 'Skambinti API funkcija r = SHGetPathFromIDList (ByVal X, ByVal path)' Kodas, skirtas ištrinti papildomas vietas aplanko vardo pabaigos grąžinimas Jei r Tada pos = InStr (kelias, Chr (0)) GetFolderName = Kairė (kelias, pos - 1) Kita GetFolderName = "" Pabaiga Jei pabaigos funkcija Sub TestGetFolderName () Dim FolderName As String 'Calling function GetFolderName FolderName = GetFolderName ("Pasirinkite aplanką") If FolderName = "" Tada MsgBox "Jūs nepasirinkote aplanko." Else MsgBox "Pasirinkote šį aplanką:" & FolderName End If End Sub 

Jei jums patiko šis tinklaraštis, pasidalykite juo su draugais „Facebook“. Be to, mus galite sekti „Twitter“ ir „Facebook“.

Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime pagerinti savo darbą ir padaryti jį geresnį. Rašykite mums el