Die 12 wichtigsten VBA-Text-Funktionen

Mehrere Fundstellen in einer Zeichenkette

∅ 4.3 / 4 Bewertungen

Mehrere Fundstellen in einer Zeichenkette

Auf dieser Seite

Mit der InStr()-Funktion können Sie nicht nur das erste Auftreten einer gesuchten Textstelle ermitteln, sondern auch folgende.

Damit sind wir beim zweiten Vornamen und damit der nächsten Herausforderung. Er beginnt beim ersten Leerzeichen, welches wir ja schon gefunden haben. Aber er endet beim zweiten Leerzeichen, welches mit bisheriger Technik nicht zu finden ist.

Aber auch das zweite Leerzeichen lässt sich mit InStr() finden! Die InStr()-Funktion hat einen optionalen Parameter (interessanterweise vor den übrigen, was bei keiner anderen Funktion so ist), der angibt, ab welcher Position die Suche beginnen soll.

Beginnen Sie also nach der Position des ersten Leerzeichens zu suchen, findet InStr() das zweite, wie der folgende Code zeigt:

Sub ZweitenVornamenBesserFinden()
    Dim strZweiterVorname As String
    Dim intLeerPos1 As Integer
    Dim intLeerPos2 As Integer
    
    intLeerPos1 = InStr(m_cstrName & " ", " ")
    intLeerPos2 = InStr(intLeerPos1 + 1, m_cstrName & " ", " ")
    strZweiterVorname = Mid(m_cstrName, intLeerPos1 + 1, _
        intLeerPos2 - intLeerPos1 - 1)
    MsgBox "Zweiter Vorname: " & strZweiterVorname
End Sub

Beachten Sie bitte das Leerzeichen und den Unterstrich am Ende der einen Zeile, die dem Compiler signalisieren, dass die folgende Zeile noch dazugehört.