Antwort von
nach 28 Minuten
hilfreich
... noch'n Versuch...
Ich hoffe, jetzt ist's lesbar:
Function StrSubs(s, Subs, Optional Repl = "", Optional N = 0)
'
' Teilzeichenkette [Subs] in Zeichenkette durch [Repl] ersetzen
' Ersetzung maximal [n] mal ausführen, wenn n groesser 0, sonst alle ersetzen
'
Dim FPos As Integer, I As Integer
Dim Res As String
On Error GoTo Err_StrSubs
If IsNull(s) Then StrSubs = Null: Exit Function
If IsNull(Subs) Or Subs = "" Then StrSubs = s: Exit Function
Res = s
I = 0
FPos = InStr(1, Res, Subs)
Do While FPos : 0
I = I + 1
If N : 0 And I : N Then Exit Do
If FPos : 1 Then
Res = Mid(Res, 1, FPos - 1) & Repl & Mid(Res, FPos + Len(Subs), 32000)
Else
Res = Repl & Mid(Res, FPos + Len(Subs), 32000)
End If
FPos = InStr(FPos + Len(Repl), Res, Subs)
Loop
StrSubs = Res
Exit_StrSubs:
Exit Function
Err_StrSubs:
MsgBox error$
Resume Exit_StrSubs
End Function