Herbers Excel-Forum - das Archiv
Zeichen ersetzen
Betrifft: Zeichen ersetzen
von: robert
Geschrieben am: 18.09.2003 20:16:29
Wie unten geschildert hat ich schon eine gut elösung bekommen, allerdings hab ich nun ei neues problem. Ich muss ubedingt die " irgednwie ersetzen lassen..nur wie?
"Hi Robert,
muss mich erstmal korrigieren:
Ich hatte die Sonderzeichen durch NIX ersetzt - insofern hab ich das jetzt auch mal angepasst:
Option Explicit
Sub wechseln()
Dim C As Range, Bereich As Range
Dim Awf As WorksheetFunction
Set Awf = Application.WorksheetFunction
Set Bereich = [a1:c16] 'Hier kannst du den Bereich vorgeben
With Awf
For Each C In Bereich
C = .Substitute(.Substitute(.Substitute(C, "~", "?"), "*", "?"), "+", "?")
Next C
End With
End Sub
Hier werden die Sonderzeichen "~", "*" und "+" durch ein "?" ersetzt - und zwar jetzt im Bereich A1:C16.
Kurz zum Code (aber wirklich nur kurz;-))
Der zu bearbeitende Zellbereich wird in der Variable "Bereich" gespeichert.
Mit "For each C in Bereich" wird jede einzelne Zelle (dafür steht das C) im Bereich "abgearbeitet".
Der neue Eintrag einer jeden Zelle (C) ergibt sich dann dadurch, dass die "Application.WorksheetFunction.Substitute" in verschachtelter Form die einzelnen Sonderzeichen durch ein "?" ersetzt. Substitute ist die englische Funktionsbezeichnung für die Excelfunktion "WECHSELN".
Und da ich keine Lust habe, jedes mal "Application.WorksheetFunction" vor jedes Substitute zu schreiben, pack ich das noch in die Variable "Awf" und arbeite dann mit der "With-Anweisung". Näheres dazu findest du in der VBA-Hilfe.
Grüße Boris
Betrifft: AW: Zeichen ersetzen
von: Björn B.
Geschrieben am: 18.09.2003 23:02:10
Hallo Robert,
versuchs doch mal so... """"
bzw.
Sub wechseln()
Dim C As Range, Bereich As Range
Dim Awf As WorksheetFunction
Set Awf = Application.WorksheetFunction
Set Bereich = [a1:c16] 'Hier kannst du den Bereich vorgeben
With Awf
For Each C In Bereich
C = .Substitute(.Substitute(.Substitute(C, """", "?"), "*", "?"), "+", "?")
Next C
End With
End Sub
Gruß
Björn B.