Gennemse mappe til valg af mappe ved hjælp af VBA i Microsoft Excel

Anonim

I denne artikel har vi oprettet en procedure, der bruges til visning af dialogboksen, som bruges til at gennemse mappen til valg af mappe.

Denne kode kan bruges sammen med andre makroer, hvor valg af mappe er påkrævet ved runtime.

Logisk forklaring

I denne artikel har vi henvist til to API -funktioner for at vise dialogboksen til browsermappe.

Når vi vælger en bestemt mappe ved hjælp af mappebrowser, returnerer dialogboksen stien til den valgte mappe.

Følg venligst nedenstående for koden

 Mulighed Eksplicit 'Deklarerende brugerdatatype' Anvendes af funktionen GetFolderName Privat 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 'Deklarere henvisning til API Funktion Privat erklære Funktion SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Deklarer funktion SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseForFolderA" (AspBolderInfo) Længere (Msg As String) As String 'Returnerer navnet på den mappe, der er valgt af brugeren Dim bInfo Som BROWSEINFO, sti As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Type bibliotek, der skal returneres bInfo .ulFlags = & H1 'Vis dialogboksen X = SHBrowseForFolder (bInfo)' Parser resultatstien = Space $ (512) 'Calling API -funktion r = SHGetPathFromIDList (ByVal X, ByVal -sti)' Kode til sletning af ekstra mellemrum i afslutning på mappenavn retur Hvis r Så pos = InStr (sti, Chr (0)) GetFolderName = Venstre (sti, pos - 1) Ellers GetFolderName = "" Afslut hvis slutfunktion Sub TestGetFolderName () Dim mappenavn som streng 'Opkaldsfunktion GetFolderName FolderName = GetFolderName ("Vælg en mappe") Hvis FolderName = "" Herefter MsgBox "Du valgte ikke en mappe." Ellers MsgBox "Du har valgt denne mappe:" & FolderName End If End Sub 

Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet