Selauskansio kansion valitsemiseksi VBA: n avulla Microsoft Excelissä

Anonim

Tässä artikkelissa olemme luoneet menettelyn, jota käytetään valintaikkunan näyttämiseen, jota käytetään kansion selaamiseen kansion selaamiseen.

Tätä koodia voidaan käyttää yhdessä muiden makrojen kanssa, joissa kansio on valittava ajon aikana.

Looginen selitys

Tässä artikkelissa olemme viitanneet kahteen sovellusliittymätoimintoon selauskansion valintaikkunan näyttämiseksi.

Kun valitsemme tietyn kansion kansio -selaimella, valintaikkuna palauttaa valitun kansion polun.

Seuraa koodia alla

 Option Explicit 'Declaring user data type' Käytetään funktiossa GetFolderName Private 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 'Ilmoitusviittaus API -toimintoon Funktio SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (ByVal pidl Niin kauan, ByVal pszPath As String) Niin kauan kuin yksityinen ilmoitustoiminto SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseForFolderAFF (Viesti merkkijonona) merkkijonona 'Palauttaa käyttäjän valitseman kansion nimen. .ulFlags = & H1 'Näytä valintaikkuna X = SHBrowseForFolder (bInfo)' Jäsennä tulospolku = Space $ (512) 'API -funktion kutsuminen r = SHGetPathFromIDList (ByVal X, ByVal path)' Koodi ylimääräisten välilyöntien poistamiseksi kansion lopun nimen palautus Jos r Sitten pos = InStr (polku, Chr (0)) GetFolderName = Left (polku, pos - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName () Dim FolderName as String 'Calling function GetFolderName FolderName = GetFolderName ("Valitse kansio") If FolderName = "" Sitten MsgBox "Et ole valinnut kansiota." Else MsgBox "Valitsit tämän kansion:" & FolderName End If End Sub 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse