version=1.0.0 vdate=21.08.2014 fname=udf_substrreplace.bas ns=%NAMESPACE% fpath=/vba/functions ====== [VBA] substrReplace() ====== //Diese Funktion ist analog zum PHP-Befehl substr_replace()// ==Version %%version%% (%%vdate%%)== {{%%ns%%:%%fname%%|Download %%fname%% (V-%%version%%)}} ===== Beispiele ===== 'Nach dem 3ten Zeichen alles ersetzen ?substrReplace("AB CD EF", "_uvw_", 3) AB _uvw_ 'Nach dem 3ten Zeichen einfügen ?substrReplace("AB CD EF", "_uvw_",3, 0) AB _uvw_CD EF 'ab dem 3ten Zeichen 3Zeichen ersetzen ?substrReplace("AB CD EF", "_uvw_",3 ,3) AB _uvw_EF 'Ab dem 3ten Zeichen von hinten ein Zeichen ersetzen ?substrReplace("AB CD EF", "_uvw_",-3, 1) AB CD_uvw_EF 'Ab dem 3ten Zeichen bis zum 2t letzten Zeichen ersetzen ?substrReplace("AB CD EF", "_uvw_", 3, -2) AB _uvw_EF 'Text am Anfang anfügen ?substrReplace("AB CD EF", "_uvw_",0,0) _uvw_AB CD EF Und noch ein einfaches Beispiel, wie man diese Funktion für %%RegExp%%-Ersetzungen gut gebrauchen kann Dim rx As New regExp: rx.Pattern = "\d+": rx.Global = True Dim txt As String: txt = "9 Hühner und 12 Schweine" Dim mc As MatchCollection: Set mc = rx.execute(txt) 'von Hinten nach vorne iterieren, damit die Startpunkte (firstIndex) ihre Gültigkeit behalten Dim i As Integer: For i = mc.count - 1 To 0 Step -1 Dim m As Match: Set m = mc.item(i) txt = substrReplace(txt, m.value ^ 2, m.firstIndex, m.length) Next i Debug.Print txt 'Ausgabe: '81 Hühner und 144 Schweine ===== Code =====