Mehrere Fundstellen in einer Zeichenkette
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 SubBeachten Sie bitte das Leerzeichen und den Unterstrich am Ende der einen Zeile, die dem Compiler signalisieren, dass die folgende Zeile noch dazugehört.
Dies ist eine Leseprobe
Möchten Sie den Beitrag komplett lesen? Dann werden Sie Probemitglied und testen Sie akademie.de 14 Tage kostenlos!
Auf VBA: Die 12 wichtigsten Text-Funktionen erfahren Sie mehr über diesen Beitrag und die weiteren Leseproben.
Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.
Ich bin bereits Mitglied