Microsoft Excel

Herbers Excel/VBA-Archiv

Trim funktioniert nicht | Herbers Excel-Forum


Betrifft: Trim funktioniert nicht von: Gregor
Geschrieben am: 20.10.2008 07:39:57

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

  

Betrifft: AW: Trim funktioniert nicht von: Gerd L
Geschrieben am: 20.10.2008 07:58:47

Guten Morgen Georg,

... ergo ist da kein normales Leerzeichen drin.

Evt. hilft Application.Worksheetfunction.Clean(ActiveCell)

Gruß Gerd


  

Betrifft: AW: Trim funktioniert nicht von: Cardexperte
Geschrieben am: 20.10.2008 08:04:37

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


  

Betrifft: AW: Trim funktioniert nicht von: Gregor
Geschrieben am: 20.10.2008 08:19:38

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


  

Betrifft: AW: Trim funktioniert nicht von: Daniel
Geschrieben am: 21.10.2008 02:12:38

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


  

Betrifft: AW: Trim funktioniert nicht von: Gregor
Geschrieben am: 21.10.2008 22:24:25

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