Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Replace: mehrere Zeichen auf einmal ersetzen

Replace: mehrere Zeichen auf einmal ersetzen
18.07.2004 18:12:26
Franz
Hallo Forum,
ich setze einen Dateinamen aus mehreren Einzelteilen zusammen, u.a. aus dem Kundennamen. Um nun für einen Dateinamen unzulässige Zeichen auszuschließen, nehme ich diese mit "Replace" raus:
KNName = Replace(KNName, "/", "")
KNName = Replace(KNName, "\", "")
KNName = Replace(KNName, """", "")
usw.
Gibt es die Möglichkeit mehrere Zeichen in einer einzigen Anweisung auf einen Wisch rauszunehmen? Ich hab's wie folgt versucht, geht aber nicht:
KNName = Replace(KNName, ("/","\",""""), "")
Geht das irgendwie?
Vielen Dank im Voraus und Grüße
Franz
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Replace: mehrere Zeichen auf einmal ersetzen
18.07.2004 18:36:34
Matthias
Hallo Franz,
durch diese Funktion:

Function Replace2(name As String, s As String, neu As String) As String
Dim a As Long
Dim i As Long
Dim z As String
Dim n As String
n = name
For i = 1 To Len(s)
z = Mid(s, i, 1)
n = Replace(n, z, neu)
Next i
Replace2 = n
End Function

dann z.B.:
KNName = Replace2(KNName, "/\""", "")
Grüße, Matthias
Anzeige
AW: Replace: mehrere Zeichen auf einmal ersetzen
18.07.2004 18:40:02
Franz
Hallo Matthias,
tolle Idee, ganz vielen Dank dafür!!
Grüße
Franz
AW: Replace: mehrere Zeichen auf einmal ersetzen
Boris
Hi Franz,
das kann auch so aussehen:
Option Explicit

Sub Franz()
Dim strArr As Variant
Dim b As Byte
strArr = Array("/", "\", """")
For b = 0 To UBound(strArr)
Range("A1").Replace strArr(b), ""
Next b
End Sub

Grüße Boris
Anzeige
Meister der Arrayformel...
18.07.2004 22:02:57
Franz
Hi Boris,
... denkt auch in VBA gleich ans Array :-))). Danke für deine Lösung, ist harmloser als die von Matthias. Und ich übe Arrays erst noch...;-)
Besten Dank und Grüße
Franz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Zeichen in Excel mit VBA ersetzen


Schritt-für-Schritt-Anleitung

Um mehrere Zeichen in einem String in Excel mithilfe von VBA zu ersetzen, kannst du eine benutzerdefinierte Funktion erstellen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsm) > Einfügen > Modul.
  3. Füge den folgenden Code ein:
Function ReplaceMultipleChars(name As String, chars As String, newChar As String) As String
    Dim i As Long
    For i = 1 To Len(chars)
        name = Replace(name, Mid(chars, i, 1), newChar)
    Next i
    ReplaceMultipleChars = name
End Function
  1. Verwendung der Funktion: Du kannst die Funktion nun in deinen Zellen verwenden, z.B.:
=ReplaceMultipleChars(A1, "/\""""", "")

Diese Funktion ersetzt alle angegebenen Zeichen in der Zelle A1 durch einen leeren String.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Stelle sicher, dass die Argumente, die du übergibst, korrekt sind und dass du Strings übergibst.

  • Fehler: "Nicht definierte Funktion"
    Überprüfe, ob du das Modul gespeichert hast und dass die Funktion im richtigen Arbeitsblatt oder Modul aufgerufen wird.


Alternative Methoden

Es gibt auch andere Möglichkeiten, mehrere Zeichen in Excel zu ersetzen:

  1. Verwendung von Range.Replace:

    Sub ReplaceInRange()
        Dim chars As Variant
        chars = Array("/", "\", """")
        Dim b As Byte
        For b = LBound(chars) To UBound(chars)
            Range("A1:A10").Replace What:=chars(b), Replacement:="", LookAt:=xlPart
        Next b
    End Sub
  2. Excel-Formel: Wenn du keine VBA verwenden möchtest, kannst du auch eine kombinierte Formel verwenden, um Zeichen zu ersetzen. Beachte jedoch, dass dies nur für eine begrenzte Anzahl von Zeichen praktikabel ist.


Praktische Beispiele

  • Beispiel mit mehreren Ersetzungen:

    Sub ReplaceExample()
        Dim inputString As String
        inputString = "Kunde/Name\ mit \" ungültigen Zeichen"
        MsgBox ReplaceMultipleChars(inputString, "/\""""", "")
    End Sub
  • Beispiel für den Einsatz in einer Excel-Formel:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "/", ""), "\", ""), """", "")

Tipps für Profis

  • Nutze Arrays in VBA, um mehrere Zeichen effizienter zu ersetzen.
  • Arbeite mit einer Funktion, die die Anzahl der zu ersetzenden Zeichen dynamisch anpasst.
  • Teste deine Funktionen immer mit verschiedenen Eingaben, um sicherzustellen, dass sie robust sind.

FAQ: Häufige Fragen

1. Wie kann ich die Funktion in einer anderen Excel-Datei verwenden?
Du musst die Funktion in das Modul der neuen Datei kopieren, oder du kannst die Datei als Add-In speichern.

2. Gibt es eine Möglichkeit, die Ersetzung in einer bestimmten Zelle vorzunehmen?
Ja, du kannst die Range-Objekte entsprechend anpassen, um gezielt auf bestimmte Zellen zuzugreifen.

3. Was passiert, wenn ein Zeichen nicht im String vorhanden ist?
Die Funktion ignoriert Zeichen, die nicht vorhanden sind, und gibt den ursprünglichen String zurück.

4. Kann ich auch mehrere Ersetzungen in einer Zeile durchführen?
Ja, du kannst die Funktion mehrmals in einer Formel schachteln oder eine Schleife im VBA-Code verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige