Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateiname aus String auslesen

Forumthread: Dateiname aus String auslesen

Dateiname aus String auslesen
26.07.2005 10:42:54
question2
Hallo,
ich habe in einer Variable z. B. strDateiname, den Dateinamen inkl. Pfadangabe wie folgt gespeichert:
C:\Test\temp\Dateiname.xls
Dabei kann der Pfad beliebig lang sein und diverse Unterverzeichnise enthalten. Wie bekomme ich am besten den Dateinamen extrahiert. In diesem Beispiel also Dateiname.xls?
Vielen Dank
Question
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname aus String auslesen
26.07.2005 10:46:03
MichaV
Hi,
mit right("C:\Test\temp\Dateiname.xls",len("C:\Test\temp\Dateiname.xls")-instrrev("C:\Test\temp\Dateiname.xls","\"))
Gruss- Micha
PS: Das geht nicht mit XL97
AW: Dateiname aus String auslesen
26.07.2005 10:50:22
question2
Hallo Micha,
genau das war´s. Habs mit inStr versucht und bin einfach nicht auf inStrrev gestolpert.
Vielen Dank
Question2
Anzeige
AW: Dateiname aus String auslesen
26.07.2005 11:00:15
MichaV
Hi,
mit Instr gehts natürlich auch, das läuft dann auch unter Excel-97:

Option Explicit
Sub DateiName()
Dim a$
a = "C:\Test\temp\Dateiname.xls"
While InStr(a, "\") > 0
a = Right(a, Len(a) - InStr(a, "\"))
Wend
MsgBox a
End Sub

Gruss- Micha
PS: Mal eine ganz andere Variante (läuft nicht auf XL97):
msgbox split("C:\Test\temp\Dateiname.xls","\")(ubound(split("C:\Test\temp\Dateiname.xls","\")))
Anzeige
AW: Dateiname aus String auslesen
26.07.2005 10:54:23
Ralf
Hallo Question,
in folgender kleiner Prozedur findest Du die Antwort...

Sub DatName_ermitteln()
Dim datName$, Pfad$, l%
datName = "C:\Test\temp\Dateiname.xls"
l = InStrRev(datName, "\")
datName = Mid(datName, l + 1) 'Mit Dateiendung
datName = Left(datName, Len(datName) - 4) 'Dateiendung abgeschnitten
End Sub

Ciao, Ralf
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dateiname aus einem String in Excel auslesen


Schritt-für-Schritt-Anleitung

Um den Dateinamen aus einem vollständigen Pfad in Excel auszulesen, kannst Du verschiedene Methoden anwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Variablen definieren: Lege eine Variable für den Pfad fest, z.B. strDateiname.

    Dim strDateiname As String
    strDateiname = "C:\Test\temp\Dateiname.xls"
  2. Dateinamen extrahieren: Nutze die InStrRev Funktion, um die Position des letzten Backslashes zu finden und den Dateinamen zu extrahieren.

    Dim datName As String
    Dim l As Long
    l = InStrRev(strDateiname, "\")
    datName = Mid(strDateiname, l + 1) ' Mit Dateiendung
  3. Optional: Dateiendung entfernen: Falls Du den Dateinamen ohne die Dateiendung benötigst, kannst Du dies wie folgt tun:

    datName = Left(datName, Len(datName) - 4) ' Dateiendung abgeschnitten
  4. Ergebnis anzeigen: Zeige den extrahierten Dateinamen in einer Meldung an.

    MsgBox datName

Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"
    Lösung: Stelle sicher, dass Du die Variablen korrekt deklariert hast und die richtigen Datentypen verwendest.

  • Fehler: InStrRev gibt einen Fehler zurück
    Lösung: Achte darauf, dass der Pfad tatsächlich einen Backslash enthält. Andernfalls wird InStrRev nicht die gewünschte Position finden.


Alternative Methoden

Eine weitere Methode zur Extraktion des Dateinamens ist die Verwendung der Split-Funktion. Diese Variante funktioniert jedoch nicht mit Excel 97:

Dim parts() As String
parts = Split(strDateiname, "\")
MsgBox parts(UBound(parts)) ' Dies gibt den vollständigen Dateinamen aus

Praktische Beispiele

Hier sind zwei praktische Beispiele, die unterschiedliche Ansätze zur Extraktion des Dateinamens zeigen:

  1. Verwendung von Right und InStr:

    Dim a As String
    a = "C:\Test\temp\Dateiname.xls"
    While InStr(a, "\") > 0
       a = Right(a, Len(a) - InStr(a, "\"))
    Wend
    MsgBox a
  2. Verwendung von Mid und InStrRev:

    Sub DateiName()
       Dim a As String
       a = "C:\Test\temp\Dateiname.xls"
       Dim l As Long
       l = InStrRev(a, "\")
       MsgBox Mid(a, l + 1)
    End Sub

Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler frühzeitig zu erkennen.

  • Experimentiere mit der Verwendung von benutzerdefinierten Funktionen, um die Dateinamen-Extraktion wiederverwendbar zu machen.

  • Überlege, wie Du Fehlerbehandlungsroutinen einbauen kannst, um sicherzustellen, dass Deine Prozeduren auch bei unerwarteten Eingaben stabil bleiben.


FAQ: Häufige Fragen

1. Kann ich diese Methoden auch in Excel 97 verwenden?
Ja, die Methoden mit InStr funktionieren auch in Excel 97, während die Methoden mit Split nicht unterstützt werden.

2. Gibt es eine einfache Möglichkeit, die Dateiendung zu ändern?
Ja, Du kannst die Left-Funktion verwenden, um die Dateiendung zu entfernen, und dann den neuen Dateinamen mit der gewünschten Endung zusammenfügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige