AW: Zeichen in einem String austauschen
14.05.2024 08:09:33
MCO
Moin!
Zu diesem Zweck hab ich mal eine Funktion gebaut, die aber mehr beachtet als nur ungültige Zeichen.
Was du nicht brauchst kannst du ra raussschmeissen.
Function Sonderzeichenkiller(ByRef Text As String) As String
Dim Sonderzeichen As String, i As Long
Application.Volatile
'Zeichen, die gelöscht werden, zum speichern von Dateinamen
Sonderzeichen1 = "!:'*#*()+>{}[]&%~?=$|" & chr(34) & chr(9) 'Chr(34)=" 'zum löschen
Sonderzeichen2 = "/\" 'zum ersetzen
'keine Aktion bei "-_"
For i = 1 To Len(Sonderzeichen1)
Text = Replace(Text, Mid(Sonderzeichen1, i, 1), "")
dopp = Mid(Sonderzeichen1, i, 1) & Mid(Sonderzeichen1, i, 1)
Do
Text = Replace(Text, dopp, Mid(Sonderzeichen1, i, 1)) 'doppelte Zeichen entfernen
Loop While InStr(Text, dopp) > 0
Next i
For i = 1 To Len(Sonderzeichen2)
dopp = Mid(Sonderzeichen2, i, 1) & Mid(Sonderzeichen2, i, 1)
Do
Text = Replace(Text, dopp, Mid(Sonderzeichen2, i, 1)) 'doppelte Zeichen entfernen
Loop While InStr(Text, dopp) > 0
Text = Replace(Text, Mid(Sonderzeichen2, i, 1), "_")
Next i
dopp = " " '2 Leerzeichen
Do
Text = Replace(Text, dopp, " ") 'doppelte Zeichen entfernen
Loop While InStr(Text, dopp) > 0
Text = Replace(Text, " _ ", "_")
Sonderzeichenkiller = Text
End Function
Gruß, MCO