I denne artikkelen har vi opprettet en prosedyre som brukes til å vise dialogboksen, som brukes til å bla gjennom mappen for å velge mappe.
Denne koden kan brukes sammen med andre makroer der valg av mappe er nødvendig ved kjøretid.
Logisk forklaring
I denne artikkelen har vi referert til to API -funksjoner for å vise dialogboksen for surfemappe.
Når vi velger en bestemt mappe ved hjelp av mappleser, returnerer dialogboksen banen til den valgte mappen.
Følg koden nedenfor
Alternativ Eksplisitt 'Deklarerende brukerdatatype' Brukes av funksjonen GetFolderName Privat Type BROWSEINFO hOwner As Long pidlRoot Som Long pszDisplayName As String lpszTitle As String ulFlags As Long lPfn As Long lParam As Long iImage As Long End Type 'Deklarere referanse til API -funksjon Privat erklæring Funksjon SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Deklarere Funksjon SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (AspFolderAsForFolderA "(AsfBrowseLangeForFolderA") (Msg As String) As String 'Returnerer navnet på mappen valgt av brukeren Dim bInfo Som BROWSEINFO, banen As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Type katalog for å returnere bInfo .ulFlags = & H1 'Vis dialogboksen X = SHBrowseForFolder (bInfo)' Analyser resultatbanen = Space $ (512) 'Calling API -funksjon r = SHGetPathFromIDList (ByVal X, ByVal path)' Kode for å slette ekstra mellomrom i slutten av mappenavn retur Hvis r Da pos = InStr (bane, Chr (0)) GetFolderName = Venstre (bane, pos - 1) Ellers GetFolderName = "" End If End -funksjon Sub TestGetFolderName () Dim FolderName As String 'Calling function GetFolderName FolderName = GetFolderName ("Velg en mappe") Hvis FolderName = "" Da MsgBox "Du valgte ikke en mappe." Else MsgBox "Du valgte denne mappen:" og mappenavn End If End Sub
Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.
Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post