Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Replace im bestimmten Bereich

VBA Replace im bestimmten Bereich
16.01.2013 20:38:34
Andy
Hallo,
ich möchte gerne per VBA einen Bereich durchsuchen und alle . (Punkte) aus den Zellen entfernen, wenn dort einer vorhanden ist.
Ich habe dazu schon etwas für eine aktive Zelle gefunden, weiß jedoch nicht, wie man das auf einen bestimmten Bereich zB: A1:BA99 anwendet:
ActiveCell.Value = Replace(ActiveCell.Value, ".", "")
Könnt ihr mir da helfen?
Gruß Andy

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Replace im bestimmten Bereich
16.01.2013 21:02:15
Hajo_Zi
Hallo Andy,
benutze den Makrorecorder.

AW: VBA Replace im bestimmten Bereich
16.01.2013 21:13:04
Andy
Hallo Hajo,
manchmal ist es doch einfacher als man denkt... danke für den Tipp
Der Makrorekorder hat mir folgendes aufgezeichnet:
Range("A1:BA99").Select
Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
soweit so gut.
Ich dachte, dass man es mit with lösen könnte, also so in etwa:
With Range("a1:ba99")
.Value = .Value = Replace(ActiveCell.Value, ".", "")
End With
Ist es so auch möglich? Wie muss ich dann die zu durchsuchende Zelle, also das ActiveCell.Value schreiben?
Gruß Andy

Anzeige
AW: VBA Replace im bestimmten Bereich
16.01.2013 21:53:15
Andy
habe es nun selber gelöst:
With Range("a41:a51")
.Replace What:=".", Replacement:=""
End With

AW: VBA Replace im bestimmten Bereich
16.01.2013 21:51:16
Andy
Hab noch etwas rumexperimentiert und habe noch eine weitere Lösung gefunden:

With Range("a1:bs99")
.Replace What:=".", Replacement:=""
End with

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Replace im bestimmten Bereich


Schritt-für-Schritt-Anleitung

Um in Excel VBA einen bestimmten Bereich zu durchsuchen und beispielsweise alle Punkte (.) aus den Zellen zu entfernen, kannst du den folgenden Code verwenden:

Sub ReplaceDotsInRange()
    ' Definiere den zu durchsuchenden Bereich
    With Range("A1:BA99")
        .Replace What:=".", Replacement:="", LookAt:=xlPart
    End With
End Sub

Dieser Code ersetzt alle Punkte im Bereich A1:BA99 durch einen leeren String. Du kannst den Bereich nach Bedarf anpassen.


Häufige Fehler und Lösungen

  1. Fehler: Der Bereich wird nicht gefunden

    • Lösung: Stelle sicher, dass der angegebene Bereich korrekt ist. Überprüfe die Schreibweise und den Bereichsbezug.
  2. Fehler: .Replace funktioniert nicht

    • Lösung: Vergewissere dich, dass du die .Replace Methode korrekt anwendest. Achte darauf, die Parameter What und Replacement richtig zu definieren.
  3. Fehler: Keine Änderungen sichtbar

    • Lösung: Überprüfe, ob die Zellen tatsächlich Punkte enthalten. Nutze eventuell eine Debugging-Ausgabe, um den Inhalt der Zellen zu prüfen.

Alternative Methoden

Eine weitere Möglichkeit, um einen Wert in einem bestimmten Bereich zu ersetzen, ist die Verwendung der Cells-Methode:

Sub ReplaceDotsWithCells()
    Dim cell As Range
    For Each cell In Range("A1:BA99")
        cell.Value = Replace(cell.Value, ".", "")
    Next cell
End Sub

Diese Methode durchläuft jede Zelle im angegebenen Bereich und ersetzt Punkte in den Zellwerten.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die vba replace Methode anwenden kannst:

  1. Ersetzen von Text in einem kleineren Bereich:
Sub ReplaceTextExample()
    With Range("A1:A10")
        .Replace What:="Test", Replacement:="Beispiel"
    End With
End Sub
  1. Ersetzen von Werten unter Berücksichtigung der Groß-/Kleinschreibung:
Sub CaseSensitiveReplace()
    With Range("B1:B50")
        .Replace What:="test", Replacement:="Beispiel", MatchCase:=True
    End With
End Sub

Diese Beispiele zeigen, wie flexibel die excel vba replace in range Funktion genutzt werden kann.


Tipps für Profis

  • Nutze die LookAt-Option, um zu bestimmen, ob der gesamte Zellinhalt oder nur ein Teil ersetzt werden soll. LookAt:=xlPart ersetzt nur, wenn der gesuchte Text im Zellinhalt vorkommt.
  • Überlege, die SearchFormat und ReplaceFormat Parameter zu verwenden, um formatierte Inhalte zu ersetzen.
  • Teste deinen Code zuerst in einer Kopie deiner Arbeitsmappe, um unerwünschte Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zeichen gleichzeitig ersetzen?
Du kannst dies erreichen, indem du mehrere .Replace-Aufrufe in einer Schleife oder nacheinander durchführst.

2. Was ist der Unterschied zwischen Replace und Cells.Replace?
Cells.Replace kann in einer bestimmten Zelle oder einem gesamten Arbeitsblatt verwendet werden, während Replace in einem definierten Bereich arbeitet. Beide Methoden bieten jedoch ähnliche Funktionalitäten.

3. Wie kann ich die vba replace Methode in einer Funktion verwenden?
Du kannst eine benutzerdefinierte Funktion erstellen, die den Ersetzungsprozess für verschiedene Bereiche oder Bedingungen übernimmt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige