Hier eine Version, welche ich kürzlich machte um sie universell einsetzen zu können, um Teil Strings zu erhalten aus 2 Abschnitten in der Art von "bring mir den Teilstring, welcher sich zwischen SuchString1 und SuchString2 befindet:
string1="Was sind 10 euro in dollar"
strResultat = fctMiddle(string1, "sind ", "euro")
Sub fctMiddle(sInput As String, sStartKey As String, sEndKey As String) As String
Dim sOutput As String
Dim sTemp As String
Dim iStartPos As Int
Dim iEndPos As Int
iStartPos = sInput.indexOf (sStartKey)
If iStartPos >= 0 Then
iStartPos = iStartPos + sStartKey.length
End If
'Der Endkey wird nur evaluiert, wenn der Startkey gefunden wird.
If iStartPos >= 0 Then
sTemp = sInput.substring2(iStartPos, sInput.length)
iEndPos = sTemp.indexOf ( sEndKey ) + iStartPos
'Auslesen des Wertes
If iEndPos < iStartPos Then
'Der Endkey ("&") kommt nach Startkey nicht mehr im String vor. Bsp: &DocID=33006.
'Wir liefern das Ende des Strings ab Startkey
sOutput = sInput.substring2(iStartPos, sInput.length)
Else If iEndPos = iStartPos Then
'Startkey und Endkey folgen unmittelbar nacheinander. Bsp: &DocID=&
'Wir liefern ein leeren String
sOutput = ""
Else
'Der Startkey und der Endkey kommen wie erwartet im String vor. Bsp: &DocID=33006&MemoType=1
sOutput = sInput.substring2 ( iStartPos, iEndPos )
End If
End If
Return sOutput
End Sub