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

Forumthread: Text mit VBA splitten

Text mit VBA splitten
12.05.2004 22:25:24
Markus
Hallo,
ich suche eine Möglichkeit eine Textvariable deren Länge ich nicht kenne in 2 Teile zu splitten.
Beispiel = 'text/variable'
Der Delimiter ist in diesem Fall der Slash (/).
Rückgabe1 = 'text'
Rückgabe2 = 'variable'
Wenn ich das richtig verstanden habe, würde
rueckgabe = split(Beispiel)
mir nur 'text' zurückgeben. Die Variable rueckgabe kann ich aber nicht mit einer msgbox ausgeben?!
Und was muss ich tun, um an den Teil rechts vom delimiter zu kommen?
Ist split vielleicht nicht der richtige Weg? Habe hier im Forum kaum etwas dazu finden können... Left() und Right() helfen mir auch nicht weiter, da ich die Position des Delimiters nicht kenne, oder muss die zuerst auch ermittelt werden?
Vielen Dank und Gruß,
Markus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Text mit VBA splitten
12.05.2004 22:38:09
Nepumuk
Hallo Markus,
versuch es mal so:


Public Sub test()
    Dim Beispiel As String
    Beispiel = "text/variable"
    MsgBox Right(Beispiel, InStr(1, StrReverse(Beispiel), "/") - 1)
End Sub


Gruß
Nepumuk
Anzeige
AW: Text mit VBA splitten
Markus
Hallo Nepumuk,
vielen lieben Dank für Deine schnelle Hilfe!!! Es funktioniert!
Gruß,
Markus
AW: Text mit VBA splitten
Boris
Hi Markus,
wenngleich ich mich mit Nepumuk nicht messen kann und er das 100 mal weiss:
Es geht natürlich auch mit Split und Mid:
Public

Sub test1()
Dim Beispiel As String, Var As Variant
Beispiel = "text/variable"
Var = Split(Beispiel, "/")
MsgBox Var(UBound(Var))
End Sub


Sub test2()
Dim Beispiel As String, Var As Variant
Beispiel = "text/variable"
MsgBox Mid(Beispiel, InStr(1, Beispiel, "/") + 1)
End Sub

Grüße Boris
Anzeige
AW: Text mit VBA splitten
Markus
Hallo Boris,
auch Dir vielen Dank, funktioniert super!
Gruß,
Markus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Text mit VBA splitten


Schritt-für-Schritt-Anleitung

Um einen Text in VBA zu splitten, kannst Du die Split()-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel mit ALT + F11.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei)", dann "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Sub SplitText()
        Dim Beispiel As String
        Dim Var As Variant
        Beispiel = "text/variable"
        Var = Split(Beispiel, "/")
    
        MsgBox "Erster Teil: " & Var(0) & vbCrLf & "Zweiter Teil: " & Var(1)
    End Sub
  4. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle SplitText und klicke auf "Ausführen".

Diese Schritte zeigen, wie Du den Text mit dem Slash (/) als Delimiter in zwei Teile zerlegen kannst.


Häufige Fehler und Lösungen

  • Problem: MsgBox gibt nur einen Teil des gesplitteten Textes zurück.

    • Lösung: Stelle sicher, dass Du auf den richtigen Index des Arrays zugreifst. Der erste Teil ist Var(0) und der zweite Teil ist Var(1).
  • Problem: Der Delimiter ist nicht korrekt.

    • Lösung: Achte darauf, dass der Delimiter in der Split()-Funktion genau so angegeben wird, wie er im Text vorkommt (z.B. "/").
  • Problem: Fehler bei der Verwendung von MsgBox mit Arrays.

    • Lösung: Verwende die UBound()-Funktion, um den letzten Index zu ermitteln: MsgBox Var(UBound(Var)).

Alternative Methoden

Neben der Split()-Funktion kannst Du auch die Mid()- und InStr()-Funktionen verwenden, um einen Text in VBA zu teilen. Hier ist ein Beispiel:

Sub AlternativeSplit()
    Dim Beispiel As String
    Beispiel = "text/variable"

    MsgBox "Zweiter Teil: " & Mid(Beispiel, InStr(1, Beispiel, "/") + 1)
End Sub

Diese Methode verwendet InStr(), um die Position des Delimiters zu finden und Mid(), um den Text danach zurückzugeben.


Praktische Beispiele

Hier sind zwei Beispiele, die die Verwendung der Split()-Funktion in Excel VBA zeigen:

  1. Text aufteilen mit Split():

    Sub BeispielSplit()
        Dim Beispiel As String
        Dim Teile As Variant
        Beispiel = "Hallo/Welt"
        Teile = Split(Beispiel, "/")
    
        MsgBox "Erster Teil: " & Teile(0) & ", Zweiter Teil: " & Teile(1)
    End Sub
  2. Text mit Mid() und InStr() teilen:

    Sub BeispielMid()
        Dim Beispiel As String
        Beispiel = "Excel/VBA"
    
        MsgBox "Rechter Teil: " & Mid(Beispiel, InStr(1, Beispiel, "/") + 1)
    End Sub

Tipps für Profis

  • Verwende Option Base 1: Wenn Du möchtest, dass die Arrays in VBA bei 1 beginnen, kannst Du Option Base 1 am Anfang Deines Moduls hinzufügen.

  • Delimiters dynamisch: Um den Delimiter dynamisch zu gestalten, kannst Du den Delimiter in einer Variablen speichern:

    Dim Delimiter As String
    Delimiter = "/"
    Var = Split(Beispiel, Delimiter)
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass Dein Code robust ist und auch bei unerwarteten Eingaben funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Delimiter verwenden?
Du kannst die Replace()-Funktion vorher verwenden, um mehrere Delimiter in einen einzigen zu ersetzen, bevor Du die Split()-Funktion anwendest.

2. Was mache ich, wenn mein Text keine Delimiter enthält?
Überprüfe vor dem Splitten, ob der Delimiter im Text vorhanden ist, um Laufzeitfehler zu vermeiden.

3. Wie kann ich die Anzahl der Teile nach dem Splitten ermitteln?
Du kannst die UBound()-Funktion verwenden, um die Anzahl der gesplitteten Teile zu ermitteln: Dim Anzahl As Long: Anzahl = UBound(Var) + 1.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige