Excel VBA – Pfad und Dateinamen mit Funktionen InStrRev, Left und Mid trennen

Excel VBA – Pfad und Dateinamen mit Funktionen InStrRev, Left und Mid trennen
4.7 Sterne
6 Bewertungen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
In diesem Beitrag zeige ich am Beispiel eines Dateipfades weitere Funktionen für Zeichenketten (Strings). In diesem Beispiel wollen wir den Dateipfad in den Dateinamen und den Pfad zerlegen.
Gehen Sie zunächst mit ALT+F11 in die Entwicklungsumgebung und fügen Sie ein neues Modul ein. Als nächstes definieren wir die benötigten Variablen.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

End Sub

Nun ermitteln wir mit der Funktion InStrRev das erste Backslash \ im kompletten Dateipfad ActiveWorkbook.FullName vom Ende gesehen.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

intPos = InStrRev(ActiveWorkbook.FullName, "\")
End Sub

Die Zeichenkette rechts von dieser Position ist der Dateiname und die Zeichenkette links davon entspricht dem Pfad.
Fangen wir mit dem Pfad an. Diesen können wir mit der Funktion Left ermitteln. Diese gibt die Zeichenkette zurück, die eine bestimmte Anzahl von Zeichen ab dem ersten (linken) Zeichen einer Zeichenfolge enthält. Wir schreiben also die gesamte Zeichenkette links von der Position des Backslashes in die Variable strPfad.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

intPos = InStrRev(ActiveWorkbook.FullName, "\")
strPfad = Left(ActiveWorkbook.FullName, intPos)

End Sub

Die Funktion Right funktioniert analog. Daher können wir diese hier nicht nutzen. Um den Dateinamen zu bekommen greifen wir auf die Funktion Mid zurück. Damit geben wir die gesamte Zeichenkette ab einer bestimmten Position aus. Da das Backslash nicht zum Dateinamen gehört, erhöhen wir die Variable intPos um 1.
Anschließend geben wir das Ergebnis mit Debug.Print im Direktbereich aus.

Sub StringZerlegen()
Dim intPos As Integer
Dim strPfad As String
Dim strDatei As String

intPos = InStrRev(ActiveWorkbook.FullName, "\")
strPfad = Left(ActiveWorkbook.FullName, intPos)
strDatei = Mid(ActiveWorkbook.FullName, intPos + 1)

Debug.Print strPfad
Debug.Print strDatei
End Sub

VBA String zerlegen

Ergebnis


Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Kommentar verfassen