Das letzte Vorkommen einer Zeichenfolge in einem String

Die Funktion zur Problemlösung

Um das Problem zu lösen, müssen Sie sich also eine eigene Funktion schreiben. Sie benötigt zwei Parameter. Der erste bestimmt die zu durchsuchende Zeichenkette und der zweite die zu suchende Zeichenkette.

Innerhalb der Funktion rufen Sie zunächst die InStr-Funktion auf und ermitteln so das erste Vorkommen der gesuchten Teilzeichenfolge. Liefert die Funktion einen Wert größer als 0, wird die While-Schleife betreten, die so lange läuft, bis die gesuchte Zeichenfolge nicht mehr gefunden wird.

Mit der Suche wird dabei immer nach der letzten Fundstelle begonnen. Um aber das zuletzt ermittelte Vorkommen auch aus der Funktion zurückgeben zu können, wird vor einer neuen Suche mit der Instr-Funktion der alte Wert der Variablen lngPos in der Variablen lngPosAlt gespeichert.

Rufen Sie die Funktion dann beispielsweise mit Debug.Print letztesVorkommen("C:\test\testalswkd. mdb", "\") auf, gibt diese den Wert 8 zurück, weil das "/" an Position 8.

Function letztesVorkommen(strText As String, strTZ As String) As Long
Dim lngPos As Long
Dim lngPosAlt As Long
lngPos = InStr(1, strText, strTZ)
Do While (lngPos > 0)
lngPosAlt = lngPos
lngPos = InStr(lngPos + Len(strTZ), strText, strTZ)
Loop
letztesVorkommen = lngPosAlt
End Function