In diesem Artikel haben wir VBA-Code zum Schreiben einer benutzerdefinierten Funktion zum Extrahieren des Dateinamens und Ordnernamens aus dem Dateipfad freigegeben.

Die Rohdaten für dieses Beispiel geben den vollständigen Pfad bestimmter Dateien an.

RawData

Logische Erklärung

In diesem Beispiel haben wir die benutzerdefinierte VBA-Funktion „FileOrFolderName“ erstellt, die den Datei- oder Ordnernamen als Ausgabe zurückgibt.

Die Funktion „FileOrFolderName“ verwendet zwei Parameter als Eingabe. Der erste Parameter verwendet den Dateipfad als Eingabe. Der zweite Parameter verwendet den Booleschen Wert als Eingabe. Wenn der Dateiname als Ausgabe verwendet werden soll, wird diesem Parameter der Wert True zugewiesen. Wenn der Ordnername als Ausgabe verwendet werden soll, wird diesem Parameter der Wert False zugewiesen.

Um den Dateinamen und den Ordnernamen vom Dateipfad zu trennen, ermitteln wir zunächst den Ort des letzten Auftretens des Pfadtrennzeichens im Dateipfad. Nach dem letzten Auftreten des Pfadtrennzeichens können wir den Dateinamen und den Ordnernamen einfach als Text trennen. Auf der rechten Seite des Pfadtrennzeichens befindet sich der Dateiname und auf der linken Seite des Pfadtrennzeichens befindet sich der Ordnername.

Wenn im Dateipfad kein Pfadtrennzeichen vorhanden ist, wird als Ordnername der Standardverzeichnispfad angegeben.

Ausführen der benutzerdefinierten Funktion

Um eine definierte benutzerdefinierte Funktion zu verwenden, gehen Sie zu Zelle C14 und geben Sie die Funktion = FileOrFolderName (B14, FALSE) ein. Geben Sie in Zelle D14 die Funktion = FileOrFolderName (B14, TRUE) ein, wobei Zelle B14 den Dateipfad enthält.

Zelle C14 gibt den Ordnernamen und Zelle D14 den Dateinamen an.

ArrowAfterRunningMacro

Bitte folgen Sie unten für den Code

Function FileOrFolderName(InputString As String, _

ReturnFileName As Boolean) As String



'Returns the foldername or the filename based on boolean value assigned

Dim i As Integer, FolderName As String, FileName As String

i = 0

'Code used for finding the position of last occurence of path separator

While InStr(i + 1, InputString, Application.PathSeparator) > 0

i = InStr(i + 1, InputString, Application.PathSeparator)

Wend

'Extract the folder path

'If No occurence of path separator is found then assign the default directory path

If i = 0 Then

FolderName = CurDir

Else

FolderName = Left(InputString, i - 1)

End If

'Extracting the file name

FileName = Right(InputString, Len(InputString) - i)

'Returning the folder or file name from function based on ReturnFileName parameter

If ReturnFileName Then

FileOrFolderName = FileName

Else

FileOrFolderName = FolderName

End If

End Function

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]