Sirvimiskaust kausta valimiseks Microsoft Excelis VBA abil

Anonim

Selles artiklis oleme loonud protseduuri, mida kasutatakse dialoogiboksi kuvamiseks, mida kasutatakse kausta valimiseks kausta sirvimiseks.

Seda koodi saab kasutada koos teiste makrodega, kus käitusajal on vaja kausta valida.

Loogiline seletus

Selles artiklis oleme viitanud kahele API funktsioonile, et kuvada kausta sirvimise dialoogiboks.

Kui valime kausta brauseri abil suvalise kausta, tagastab dialoogiboks valitud kausta tee.

Palun järgige koodi allpool

 Valik Selgesõnaline 'Kasutaja andmetüübi deklareerimine' Kasutab funktsiooni GetFolderName Privaatne tüüp 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 'Deklareeriv viide API funktsioonile Funktsioon SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (ByVal pidl Nii kaua, ByVal pszPath As String) Pika privaatse deklareerimise funktsioonina SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseForFolderAFF (Msg kui string) Stringina 'Annab vastuseks kasutaja valitud kausta nime Dim bInfo BROWSEINFO -na, tee kui string, r Nii pikk Dim X kui pikk, pos kui täisarv bInfo.pidlRoot = 0' Tagastatava kataloogi tüüp bInfo .ulFlags = & H1 'Kuva dialoog kausta lõpu nimi tagastamine kui r Siis pos = InStr (tee, Chr (0)) GetFolderName = Left (tee, pos - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName () Dim FolderName as String 'Calling function GetFolderName FolderName = GetFolderName ("Vali kaust") If FolderName = "" Siis MsgBox "Sa ei valinud kausta." Else MsgBox "Valisite selle kausta:" & FolderName End If End Sub 

Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.

Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile