geht doch?
19.08.2015 15:53:26
Michael
Hi Matthias,
da (" 'hier eingeben durch was ersetzen") muß nichts rein, denn Deine Zeichen stehen oben bereits in der Konstante.
Ohne das Outlook-Drumrum (habe keine OL) sieht die Logik so aus ...
Sub StringSäubern()
Dim lngVarSZ As Long
Dim strTxtSZ As String
Dim strAusgabe As String
Const strReplaceSZ As String = ".'"
strTxtSZ = "Hans Meier, Police 32.2221.224'2"
Debug.Print strTxtSZ
For lngVarSZ = 1 To Len(strReplaceSZ)
strTxtSZ = Replace(strTxtSZ, Mid(strReplaceSZ, lngVarSZ, 1), "")
Next lngVarSZ
Debug.Print strTxtSZ
' *ODER* so:
strTxtSZ = "Hans Meier, Police 32.2221.224'2"
Debug.Print strTxtSZ
strTxtSZ = Replace(Replace(strTxtSZ, ".", ""), "'", "")
Debug.Print strTxtSZ
End Sub
... und wenn Du die debug.print - Ausgabe im Direktfenster (VB-Editor: Strg+G oder unter Ansicht) ansiehst,
Hans Meier, Police 32.2221.224'2
Hans Meier, Police 3222212242
Hans Meier, Police 32.2221.224'2
Hans Meier, Police 3222212242
paßt doch alles.
In der For-Schleife wird der Reihe nach ein Replace-Befehl ausgeführt, und zwar mit dem Zeichen, das jeweils an der lngVarSZ-ten Position im strReplaceSZ steht, also für lngVarSZ-ten=1 mit dem ".", für =2 mit dem "'".
Diese Lösung ist sehr allgemein gehalten und funzt immer!
In der unteren Formulierung (nach dem Oder) mußt Du nur strTxtSZ durch .Subject ersetzen...
.Subject = Replace(Replace(.Subject, ".", ""), "'", "")
... falls Dir diese Variante einleuchtender ist.
Gruß,
Michael