Durchsuchen des Ordners zum Auswählen von Ordnern mit VBA in Microsoft Excel

Anonim

In diesem Artikel haben wir ein Verfahren erstellt, das zum Anzeigen des Dialogfelds verwendet wird, das zum Durchsuchen des Ordners zur Auswahl des Ordners verwendet wird.

Dieser Code kann zusammen mit anderen Makros verwendet werden, bei denen die Auswahl des Ordners zur Laufzeit erforderlich ist.

Logikerklärung

In diesem Artikel haben wir auf zwei API-Funktionen Bezug genommen, um das Dialogfeld zum Durchsuchen von Ordnern anzuzeigen.

Wenn wir einen bestimmten Ordner mit dem Ordnerbrowser auswählen, gibt das Dialogfeld den Pfad des ausgewählten Ordners zurück.

Bitte folgen Sie unten für den Code

 Option Explicit 'Benutzerdatentyp deklarieren 'Verwendet von der Funktion 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 'Deklarieren eines Verweises auf API Function Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseForBolderInfo" (Msg As String) As String 'gibt den Namen des vom Benutzer ausgewählten Ordners zurück Dim bInfo As BROWSEINFO, path As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0 'Verzeichnistyp, der bInfo zurückgibt .ulFlags = &H1 'Dialog anzeigen X = SHBrowseForFolder(bInfo) 'Ergebnispfad analysieren = Space$(512) 'API-Funktion aufrufen r = SHGetPathFromIDList(ByVal X, ByVal path) 'Code zum Löschen zusätzlicher Leerzeichen im Ende des Ordnernamens return If r Then pos = InStr(path, Chr(0)) GetFolderName = Left(path, pos - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName() Dim FolderName As String 'Aufruf der Funktion GetFolderName FolderName = GetFolderName("Wählen Sie einen Ordner") If FolderName = "" Then MsgBox "Sie haben keinen Ordner ausgewählt." Else MsgBox "Sie haben diesen Ordner ausgewählt: " & Ordnername End If End Sub 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site