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

Forumthread: Unsichtbare führende Zeichen aus String entfernen

Unsichtbare führende Zeichen aus String entfernen
02.10.2018 11:43:13
Michael
Hallo Zusammen,
ich kopiere eine Textblock aus Outlook in Excel und nehme ihn dann per VBA auseinander.
Doch habe ich "anscheinend" Zeichen am Anfang die sich mit Trim, Glätten o.Ä nicht entfernen lassen. Ich kann auch nicht rausfinden was das für Zeichen sind. Es sieht aus wie 2 Leerzeichen, aber mit TRIM lassen sie sich nicht entfernen :-(
Hat jemand eine Idee dazu?
Ich suche also eine Möglichkeit alles was NICHT ZAHL oder TEXT ist von Links zu löschen.
Gruß
Michael
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
=CODE(LINKS(DeineZelle))
02.10.2018 11:48:18
Matthias
Hallo
Lass Dir doch mit der Formel:
=CODE(LINKS(DeineZelle))
das Zeichen zurückgeben, dann hast Du einen Ansatzpunkt.
Gruß Matthias
AW: =CODE(LINKS(DeineZelle))
02.10.2018 12:05:17
Michael
ah,Danke.
okay, das Zeichen ist Code 160, dann folgt Nr. 32
Wie frage ich das ab. Ich weiß nicht wieviele Zeichen vor dem Text sind.
Gruß
Michael
Anzeige
LINKS() ist hier mumpitz...
03.10.2018 00:16:05
Frank
Hallo, CODE() schaut nach dem ersten Zeichen (von Links) deswegen reicht =CODE(deineZelle)
hast Recht :-) owT
03.10.2018 10:19:45
Matthias
SÄUBERN() plus Link
02.10.2018 11:49:32
lupo1
https://support.office.com/de-de/article/s%C3%84ubern-funktion-26f3d7c5-475f-4a9c-90e5-4b8ba987ba41?NS=EXCEL&Version=90&SysLcid=1031&UiLcid=1031&AppVer=ZXL900&HelpId=xlmain11.chm60210&ui=de-DE&rs=de-DE&ad=DE
Anzeige
AW: Unsichtbare führende Zeichen entfernen
02.10.2018 13:12:58
Rudi
Hallo,
DerString=Trim(Replace(DerString,Chr(160),""))
Gruß
Rudi
AW: Unsichtbare führende Zeichen entfernen
02.10.2018 13:35:55
Michael
Danke für den Tipp mit CODE. Jetzt bekomme ich es wohl hin, hoffentlich ist es immer ein Code 160 :-)
Unsichtbare führende Zeichen aus String entfernen
04.10.2018 08:39:33
Michael
Hallo nochmal,
das entfernen von Chr(160) klappt. Aber ich habe am Ende des Textes 5 Leerzeichen, lt. check alles Chr(32), Aber die bekomme ich NICHT weg.
Ich lese den Text in Tabelle 2 in eine Variable BezEN die ich dann mit
Worksheets("Tabelle1").Cells(Tab1Zeile, 2) = Trim(BezEN)
in Tabelle 1 schreibe. Mit dem Trim sollten doch dann alle Leerzeichen weg sein, oder?
Das sind sie aber nicht, wenn ich mir den Text in Tabelle 1 ansehe sind die Leerzeichen immer noch am Ende
Anzeige
Probier mal RTrim ... owT
04.10.2018 08:57:27
Matthias
AW: Probier mal RTrim ... owT
04.10.2018 10:10:12
Michael
Hallo
TRIM habe habe ich auch probiert.
Aber das kommt in Tabelle 1 an.
Erste Zeile der TEXT die 32 dahinter ist die Anzahl der Zeichen = Länge(A1)
Die Zahlen darunter der CHR-Code des Textes. Wie zu sehen sind am Ende 5 Leerzeichen die auch mit
Worksheets("Tabelle1").Cells(Tab1Zeile, 3) = RTrim(BezFra)
NICHT weg gehen. Was ist das für ein MIST :-(
FR METHANOL RECUP DISTILLE       32
70 82 32 77 69 84 72 65 78 79 76 32 82 69 67 85 80 32 68 73 83 84 73 76 76 69 32 32 32 32 32 32
Anzeige
lad doch mal die Datei hoch
04.10.2018 13:39:33
Matthias
Hallo
alles was damit nichts zu tun hat, kannst Du ja löschen.
Gruß Matthias
AW: lad doch mal die Datei hoch
04.10.2018 15:47:39
M
Okay mach ich mal.
In Tabelle 2 stehen die Daten wie ich sie aus Outlook kopiere. Mit dem Button werden sie angepasst und in Tabelle 1 geschrieben und in Zeile 2 kann man bei sehen das hinter beiden Texten noch viele Leerzeichen sind.
https://www.herber.de/bbs/user/124410.xlsm
Gruß
Michael
Anzeige
Das ist aber Zeichen 63 und nicht 32 owT
04.10.2018 16:46:16
Matthias
AW: Probier mal RTrim ... owT
05.10.2018 07:14:12
Michael
Wo ist Zeichen 63? ich sehe nur 32 am ende
AW: Probier mal RTrim ... owT
05.10.2018 08:35:12
Michael
ich habe gefunden :-( ich hatte mir ein VBA-Script geschrieben, das hat mir 32 angezeigt. Wenn ich es direkt in der Tabelle mit Code() mache, bekomme ich 63.
Jetzt habe ich versucht das ganze mit
test = Replace(Cells(ZZeile + 1, 1), Chr(63), "")
weg zu machen, aber ich bin anscheinend zu blöd :-(
Es geht nicht, die Zeichen links bleiben.
Anzeige
hier eine Datei mit dem String und VBA-Code
05.10.2018 09:21:54
Matthias
Hallo
https://www.herber.de/bbs/user/124422.xlsm
Du weißt doch ab welchem Zeichen im String Du die Zeichen ersetzen willst
und die Anzahl der Zeichen kennst Du auch.
Gruß Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Unsichtbare führende Zeichen aus Excel-Strings entfernen


Schritt-für-Schritt-Anleitung

Um unsichtbare Zeichen aus einem String in Excel zu entfernen, kannst du folgende Schritte befolgen:

  1. Zeichen identifizieren: Verwende die Formel =CODE(LINKS(DeineZelle)), um den ASCII-Code des ersten Zeichens zu erhalten. Dies hilft dir, herauszufinden, welches Zeichen du entfernen möchtest.

  2. VBA verwenden: Falls du mit unsichtbaren Zeichen wie Chr(160) (geschütztes Leerzeichen) oder Chr(63) (Fragezeichen) arbeitest, kannst du VBA nutzen:

    DerString = Trim(Replace(DerString, Chr(160), ""))
    DerString = Trim(Replace(DerString, Chr(63), ""))
  3. RTrim verwenden: Um Leerzeichen am Ende des Strings zu entfernen, kannst du RTrim oder Trim verwenden:

    Worksheets("Tabelle1").Cells(Tab1Zeile, 2) = Trim(DerString)
  4. Testen: Überprüfe die Ergebnisse in deiner Excel-Tabelle, um sicherzustellen, dass alle unerwünschten Zeichen entfernt wurden.


Häufige Fehler und Lösungen

  • Fehler: Das unerwünschte Zeichen bleibt nach der Anwendung von Trim oder RTrim sichtbar.

    • Lösung: Stelle sicher, dass du alle relevanten ASCII-Codes (z.B. Chr(160) und Chr(63)) in deinem VBA-Code berücksichtigt hast.
  • Fehler: Die Anzahl der Zeichen scheint nicht zu stimmen.

    • Lösung: Verwende Länge(A1) oder LEN(A1) um die tatsächliche Länge des Strings zu überprüfen.

Alternative Methoden

  • Excel-Funktion SÄUBERN: Diese Funktion entfernt nicht druckbare Zeichen. Verwende sie wie folgt:

    =SÄUBERN(A1)
  • Sonderzeichen entfernen: Um alle nicht druckbaren Zeichen zu entfernen, kannst du eine Kombination aus SÄUBERN und ERSETZEN verwenden:

    =WECHSELN(SÄUBERN(A1), CHAR(160), "")

Praktische Beispiele

  1. Beispiel zur Entfernung von unsichtbaren Leerzeichen: Angenommen, Zelle A1 enthält den Text " Beispieltext ". Du kannst alle Leerzeichen wie folgt entfernen:

    =GLÄTTEN(A1)
  2. VBA-Beispiel zur Bereinigung eines Strings:

    Sub RemoveInvisibleCharacters()
       Dim DerString As String
       DerString = Worksheets("Tabelle2").Cells(1, 1).Value
       DerString = Trim(Replace(DerString, Chr(160), ""))
       Worksheets("Tabelle1").Cells(1, 1).Value = Trim(DerString)
    End Sub

Tipps für Profis

  • Versteckte Zeichen anzeigen: Du kannst die Formel =CODE(A1) verwenden, um den ASCII-Code jedes Zeichens in einer Zelle zu überprüfen. Dies ist nützlich, um herauszufinden, welche unsichtbaren Zeichen vorhanden sind.

  • Regelmäßige Bereinigung: Implementiere einen VBA-Button, der regelmäßig ausgeführt werden kann, um Zeichen automatisch zu bereinigen, wenn du Daten aus externen Quellen importierst.


FAQ: Häufige Fragen

1. Wie kann ich alle nicht druckbaren Zeichen in Excel entfernen? Verwende die SÄUBERN-Funktion oder eine Kombination von Trim, Replace und Chr in VBA, um unerwünschte Zeichen zu entfernen.

2. Warum funktioniert das Entfernen von Leerzeichen nicht? Es könnte sich um unsichtbare Zeichen handeln, die nicht durch Trim oder RTrim entfernt werden. Überprüfe den ASCII-Code der Zeichen und passe deinen Code entsprechend an.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige