Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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

Replace löscht nicht alle Zeichen

Replace löscht nicht alle Zeichen
07.02.2022 17:13:04
Florian
HI Leute,
ich lösche mit diesem Code Zeichen aus einem String in einer Zelle. Das funktioniert auf meinem Rechner super. Doch wenn ich das ganze auf dem Rechner eines KOllegen laufen lassen bleiben verschiedene Zeichen bestehen, z.B. "z", "Z", "T", usw.

Public Sub Ersetzen()
Dim wks As Worksheet
Dim rngDaten As Range, Zelle As Range
Dim letzteZeile As Long
Dim strArr As Variant
Dim b As Byte
Set wks = ThisWorkbook.Sheets("Daten")
letzteZeile = wks.Cells(1048576, 1).End(xlUp).Row
Set rngDaten = wks.Range("A2:A" & letzteZeile)
strArr = Array("a", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "n", "o", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "@", "#", "$", "&", "%", "!", "^")
For Each Zelle In rngDaten
For b = 0 To UBound(strArr)
Zelle.Replace strArr(b), ""
Next b
Next
End Sub
Kann jemand erklären wie es dazu kommt?
Danke euch!! :)

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Replace löscht nicht alle Zeichen
07.02.2022 17:26:08
onur
Du willst also alle kleinen Buchstaben ausser m und p löschen ?
AW: Replace löscht nicht alle Zeichen
07.02.2022 17:39:06
Florian
Im Grumde alle kleinen und großen Buchstaben bis auf M und P. Er löscht auch alle (auch die grossen) nur bei Z, T (sowohl kleine als auch große) und ein paar anderen klappt es nicht auf einem andren Rechner. Auf meinem Rechner läuft rund.
AW: Replace löscht nicht alle Zeichen
07.02.2022 17:44:25
onur
Wieso gibst du nurr die Kleinen an ?
AW: Replace löscht nicht alle Zeichen
07.02.2022 17:32:53
volti
Hallo Florian,
ich hätte das jetzt so gemacht...
sWert = Zelle.Value
For b = 0 To UBound(strArr)
   sWert = Replace(sWert, strArr(b), "", 1, 1, vbTextCompare)
Next b
Zelle.Value = sWert
Gruß
Karl-Heinz
Anzeige
AW: Replace löscht nicht alle Zeichen
08.02.2022 08:53:48
Florian
Mit diesem Code läuft es bei mir auf dem Rechner auch nicht mehr. Es werden dadurch anscheinend gar keine Zeichen ersetzt, respektive gelöscht.
AW: Replace löscht nicht alle Zeichen
07.02.2022 17:43:20
onur
Die Replace-Funktion ist die selbe, die du unter Excel als "Suchen" bzw "Suchen&Ersetzen" kennst.
Keine Ahnung, ob du es bemerkt hast, aber wenn du bein letzten mal "Groß-/Kleinschreibung beachten" angeklickt hast, ist das Feld beim nächsten Aufruf wieder angeklickt. Das selbe gilt auch für die VBA-Funktion.
Wenn du keine Angaben wie LookAt, SearchOrder, MatchCase und MatchByte angibst, benutzt Excel das, was du (oder dein Kollege) beim letzten Mal ausgewählt hattest.
Guckst du:
Bemerkungen
Die Angaben für LookAt, SearchOrder, MatchCase und MatchByte werden jedesmal gespeichert, wenn Sie diese Methode verwenden. Wenn Sie beim nächsten Aufruf der Methode keine Werte für diese Argumente angeben, werden die gespeicherten Werte verwendet. Das Festlegen dieser Argumente ändert die Einstellungen im Dialogfeld Suchen, und durch Ändern der Einstellungen im Dialogfeld Suchen werden die gespeicherten Werte geändert, die verwendet werden, wenn Sie die Argumente auslassen. Um Probleme zu vermeiden, legen Sie diese Argumente jedes Mal explizit fest, wenn Sie diese Methode verwenden.
Anzeige
AW: Replace löscht nicht alle Zeichen
07.02.2022 18:33:23
Nepumuk
Hallo Florian,
teste mal:

Public Sub Ersetzen()
Dim vntItem As Variant
Dim rngDaten As Range
With ThisWorkbook.Sheets("Daten")
Set rngDaten = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each vntItem In Array("a", "c", "d", "e", "f", "g", "h", _
"i", "j", "k", "l", "n", "o", "q", "r", "s", "t", "u", "v", _
"w", "x", "y", "z", "@", "#", "$", "&", "%", "!", "^")
Call rngDaten.Replace(What:=vntItem, Replacement:=vbNullString, LookAt:=xlPart, MatchCase:=False)
Next
Set rngDaten = Nothing
End Sub
Gruß
Nepumuk
AW: Replace löscht nicht alle Zeichen
08.02.2022 09:01:31
Florian
Mit diesem Code werden auch willkürlich Zahlen aus dem String gelöscht. Beim ersten Test haben die letzten 3 (598) Ziffern gefehlt, bei zweitem Test nur die letzte (8).
Anzeige
AW: Replace löscht nicht alle Zeichen
08.02.2022 09:39:23
Nepumuk
Hallo Florian,
kann ich nicht nachvollziehen. In meinem Test werden nur die Zeichen aus dem Array gelöscht.
Gruß
Nepumuk
AW: Replace löscht nicht alle Zeichen
08.02.2022 10:51:32
Florian
Kann ich gut verstehen. Mich wundert es auch, dass mein ursprünglicher Code bei mir alles korrekt löscht und auf nem anderen Rechner bei nem Kollen Zeichen übrigbleiben.
Echt kurios...:-/
AW: Replace löscht nicht alle Zeichen
07.02.2022 22:59:23
Yal
Moin!
Party vorbei? Menno, ich möchte auch mitspielen.
Mein Vorschlag:

Public Sub Ersetzen()
Dim Z As Range
Dim erg As String
Dim i As Integer
With ThisWorkbook.Sheets("Daten")
For Each Z In .Range(.Range("A2"), .Cells(Rows.Count, "A").End(xlUp)).Cells
erg = ""
For i = 1 To Len(Z.Value)
Select Case Mid(Z.Value, i, 1)
Case "M", "P": erg = erg & Mid(Z.Value, i, 1)
End Select
Next
Z.Value = erg
Next
End With
End Sub
VG
Yal
Anzeige
Party vorbei-"Floh" antwortet ja nich mehr^^
08.02.2022 05:30:53
Oberschlumpf
owT
Ach so, Zahlen sollen stehen bleiben
08.02.2022 11:58:10
Yal
Moin,
gerade sehe/erfahre ich, dass Zahlen stehen bleiben sollen (war klar: ist im Code vonFlorian enthalten).

Public Sub Ersetzen()
Dim Z As Range
Dim erg As String
Dim i As Integer
With ThisWorkbook.Sheets("Daten")
For Each Z In .Range(.Range("A2"), .Cells(Rows.Count, "A").End(xlUp)).Cells
erg = ""
For i = 1 To Len(Z.Value)
Select Case Mid(Z.Value, i, 1)
Case "M", "P", "0" To "9": erg = erg & Mid(Z.Value, i, 1)
End Select
Next
Z.Value = erg
Next
End With
End Sub
VG
Yal
AW: Ach so, Zahlen sollen stehen bleiben
08.02.2022 12:12:45
Florian
Danke. Hatte es aber in meiner Datei auch selbst schon angepasst ;)
Dieser Code scheint nun auch zu funktionier. Wobei ich mich immer noch wundere, warum es mit meinem ursprünglichen Code zu diesen kuriose Ergebnissen kam.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige