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

Trim funktioniert nicht

Forumthread: Trim funktioniert nicht

Trim funktioniert nicht
20.10.2008 07:39:00
Gregor
Guten Morgen
Ich versuchte folgenden Funktion
Wert = Trim(ActiveCell)
oder
Wert = Application.Trim(ActiveCell)
oder
Wert = WorksheetFunction.Trim(ActiveCell)
ohne Erfolg, das heisst, das Leerzeichen am Anfang wird NICHT eleiminiert.
Wenn ich aber den Text direkt in VBA schreibe, zB
Wert = Trim(" Hallo") wird das Leerzeichen am Anfang eliminiert.
Wie komme ich zu einer Lösung, die immer funktioniert?
Vielen Dank
Gregor
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Trim funktioniert nicht
20.10.2008 07:58:00
Gerd
Guten Morgen Georg,
... ergo ist da kein normales Leerzeichen drin.
Evt. hilft Application.Worksheetfunction.Clean(ActiveCell)
Gruß Gerd
AW: Trim funktioniert nicht
20.10.2008 08:04:37
Cardexperte
Hallo Gregor,
wahrscheinlich handelt es sich um das Zeichen altgr + 255, mach folgendes:
geh in die Zelle, markiere das erste "Freizeichen", dann wieder raus und suchen ersetzen, einfügen dieses Zeichen und ersetzen durch nichts, dann sollte es funktionieren.
also d.h. nur mit replace ist das Zeichen wegzubekommen.
Gruss WS
Anzeige
AW: Trim funktioniert nicht
20.10.2008 08:19:00
Gregor
Hallo zusammen
Vielen Dank für die hilfreichen Tipps.
Tatsächlich handelt es sich vermutlich nicht um ein "normales" Leerzeichen. Anstelle der Trim-Funktion habe iich das Problem deshalb wie folgt gelöst:
Wert = Right(Wert, Len(Wert) - 1)
So bringe ich das erste Zeichen, was immer es auch ist, weg.
Gruss Gregor
Anzeige
AW: Trim funktioniert nicht
21.10.2008 02:12:38
Daniel
Hi
um das erste Zeichen wegzubekommen, ist diese Funktion noch einfacher:
Wert = Mid$(Wert, 2)
sollte es mal vorkommen, daß es mehr als 1 Leerzeichen am Anfang ist, versagt die Formel natürlich.
wenn du weißt, welchen ASCII-Code das Zeichen hat, könntest du dir mit folgender Funktion helfen:

Wert = Trim(Replace(Wert, Chr(160), " ")


hier wird das omniöse Zeichen durch das normale Leerzeichen ersetzt, so daß die TRIM-Funktion funktionieren kann.
das mit dem CHR(160) ist so eine Vermutung von mir, da das Zeichen mit dem ASCII-Code 160 öfters mal als "geschütztes Leerzeichen" verwendet wird.
falls du gewissheit haben willst, stoppst du mal das Makro an einer geeigneten Stelle (am besten kurz nachdem WERT zugewiesen wurde) und tippst im Direktfenster folgenden Befehl ein:


?ASC(Left(wert,1))


dann bekommst du den ASCII-Code des Zeichen angezeigt.
sollte es sich um ein UNICODE-Zeichen handeln mit einem Code grösser 255, dann musst du anstelle von CHR() und ASC() die Funktionen CHRW() und ASCW() verwenden.
Gruß, Daniel

Anzeige
AW: Trim funktioniert nicht
21.10.2008 22:24:25
Gregor
Hoi Daniel
Vielen Dank für die wertvollen Tipps. Ich habe den Code herausgefunden (160) und kann ihn nun problemlos ersetzen.
Danke und Gruss
Gregor
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Trim-Funktion in Excel VBA richtig anwenden


Schritt-für-Schritt-Anleitung

Um die Trim-Funktion in Excel VBA korrekt anzuwenden, befolge diese Schritte:

  1. Zelle auswählen: Stelle sicher, dass die Zelle, die Du bereinigen möchtest, aktiv ist.
  2. VBA-Code erstellen: Gehe in den Visual Basic for Applications (VBA)-Editor und füge folgenden Code ein:

    Sub TrimExample()
       Dim Wert As String
       Wert = ActiveCell.Value
       Wert = Application.Trim(Wert)
       ActiveCell.Value = Wert
    End Sub
  3. Code ausführen: Starte das Makro, um das Leerzeichen am Anfang und Ende des Textes zu entfernen.

Falls die Trim-Funktion nicht wie erwartet funktioniert, könnte es an speziellen Leerzeichen liegen.


Häufige Fehler und Lösungen

  • Trim funktioniert nicht: Wenn Du merkst, dass die Trim-Funktion nicht die erwarteten Ergebnisse liefert, könnte es sich um ein geschütztes Leerzeichen (ASCII-Code 160) handeln. In diesem Fall kannst Du die Replace-Funktion verwenden:

    Wert = Trim(Replace(Wert, Chr(160), " "))
  • Falsche Ergebnisse bei mehrfachem Leerzeichen: Wenn mehrere Leerzeichen am Anfang stehen, kann die Trim-Funktion versagen. Eine Möglichkeit, dies zu umgehen, ist die Verwendung von Mid oder Right, um das erste Zeichen zu entfernen:

    Wert = Mid$(Wert, 2)

Alternative Methoden

Neben der Trim-Funktion kannst Du auch andere Methoden verwenden, um Leerzeichen zu entfernen:

  • Application.WorksheetFunction.Clean: Diese Funktion entfernt unsichtbare Zeichen und kann hilfreich sein, wenn die Trim-Funktion nicht funktioniert.

    Wert = Application.WorksheetFunction.Clean(ActiveCell)
  • LTrim und RTrim: Diese Funktionen entfernen Leerzeichen nur von der linken oder rechten Seite. Sie können in Kombination mit Trim verwendet werden:

    Wert = LTrim(RTrim(Wert))

Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen können:

  1. Einfaches Beispiel mit Trim:

    Sub TrimSimple()
       Dim Wert As String
       Wert = "   Beispieltext   "
       Wert = Application.Trim(Wert)
       Debug.Print Wert ' Gibt "Beispieltext" aus
    End Sub
  2. Behandlung von ASCII-Code 160:

    Sub TrimWithASCII()
       Dim Wert As String
       Wert = "  Beispieltext  " ' Enthält geschützte Leerzeichen
       Wert = Trim(Replace(Wert, Chr(160), " "))
       Debug.Print Wert ' Gibt "Beispieltext" aus
    End Sub

Tipps für Profis

  • Debugging mit ASCII: Wenn Du den ASCII-Code eines Zeichens herausfinden möchtest, nutze:

    ?ASC(Left(Wert, 1))
  • Unicode-Zeichen: Bei Zeichen mit einem ASCII-Code über 255, verwende CHRW und ASCW anstelle von CHR und ASC.

  • VBA-Funktionalität erweitern: Du kannst eigene Funktionen erstellen, die Trim, LTrim und RTrim kombinieren, um die Eingaben weiter zu bereinigen.


FAQ: Häufige Fragen

1. Warum funktioniert Trim manchmal nicht in VBA?
Das liegt oft an speziellen Leerzeichen, wie dem geschützten Leerzeichen (ASCII-Code 160). In diesen Fällen hilft die Replace-Funktion.

2. Wie kann ich Leerzeichen am Anfang und Ende eines Strings in Excel VBA entfernen?
Du kannst die Trim-Funktion verwenden. Wenn das nicht funktioniert, probiere die Kombination von Replace mit Trim.

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