Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Ersetzen

VBA - Ersetzen
01.06.2015 14:21:21
WalterK
Hallo,
der folgende Code soll Zellen, in denen nur ein(1) "." oder nur ein(1) "-" oder nur die Zeichenfolge "--" oder nur die Zeichenfolge "---" vorhanden ist leeren und ein (1) Leerzeichen einfügen. Das funktioniert soweit.
Kann man den Code auch einfacher schreiben damit er dann vielleicht auch schneller läuft?
Option Explicit
Sub ZellenMitPunktuswLöschen()
Dim i As Long
Dim j As Long
Dim LzA As Long
Dim LCol2 As Long
LzA = Application.Max(3, Cells(Rows.Count, 1).End(xlUp).Row)
LCol2 = Cells(2, Columns.Count).End(xlToLeft).Column
For j = 1 To LCol2
For i = 1 To LzA
If Cells(2 + i, j) = "." Then
Cells(2 + i, j) = " "
End If
Next i
Next j
For j = 1 To LCol2
For i = 1 To LzA
If Cells(2 + i, j) = "-" Then
Cells(2 + i, j) = " "
End If
Next i
Next j
For j = 1 To LCol2
For i = 1 To LzA
If Cells(2 + i, j) = "--" Then
Cells(2 + i, j) = " "
End If
Next i
Next j
For j = 1 To LCol2
For i = 1 To LzA
If Cells(2 + i, j) = "---" Then
Cells(2 + i, j) = " "
End If
Next i
Next j
End Sub
Danke und Servus, Walter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Ersetzen
01.06.2015 14:25:04
Hajo_Zi
Hallo Walter,
Option Explicit
Sub ZellenMitPunktuswLöschen()
Dim i As Long
Dim j As Long
Dim LzA As Long
Dim LCol2 As Long
LzA = Application.Max(3, Cells(Rows.Count, 1).End(xlUp).Row)
LCol2 = Cells(2, Columns.Count).End(xlToLeft).Column
For j = 1 To LCol2
For i = 1 To LzA
If Cells(2 + i, j) = "." Or Cells(2 + i, j) = "-" _
Or Cells(2 + i, j) = "--" Or Cells(2 + i, j) = "---" Then
Cells(2 + i, j) = " "
End If
Next i
Next j
End Sub

Besten Dank Hajo. Servus, Walter
01.06.2015 14:40:38
WalterK

AW: VBA - Ersetzen
01.06.2015 14:51:14
Daniel
Hi
nutze doch die Ersetzen-Funktion von Excel, die darf man auch in VBA verwenden:
Sub Ersetzen1()
With ActiveSheet.UsedRange
.Replace ".", " ", xlWhole
.Replace "-", " ", xlWhole
.Replace "--", " ", xlWhole
.Replace "---", " ", xlWhole
End With
End Sub
oder mit etwas weniger Schreibaufwand mit einer Schleife:
Sub Ersetzen2()
Dim X
With ActiveSheet.UsedRange
For Each X In Array(".", "-", "--", "---")
.Replace X, " ", xlWhole
Next
end with
End Sub
Gruß Daniel

Anzeige
AW: VBA - Ersetzen
01.06.2015 15:57:11
WalterK
Hallo Daniel,
das war auch mein erster Ansatz.
Allerdings wird dann z.B. aus 31.12.2012 31122012 und das ist dann kein Datum mehr.
Danke und Servus, Walter

AW: VBA - Ersetzen
01.06.2015 16:45:05
Daniel
Hi
du irrst.
ich habe den Parameter LookAt:=xlwhole gesetzt, (entspricht in Excel dem "gesamten Zellinhalt vergleichen") und damit werden dann nur Zellen ersetzt, die genau diese Zeichen enthalten.
kommen noch andere Zeichen hinzu, werden diese Zellen nicht verändert.
hast du mein Marko mal ausprobiert bevor du geantwortet hast?
Gruß Daniel

AW: VBA - Ersetzen
01.06.2015 16:51:25
WalterK
Hallo Daniel,
Du hast Recht, Deine beiden Varianten funktionieren auch.
Danke und Servus, Walter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige