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

Wie wende ich in VBA die trim-Funktion an?

Forumthread: Wie wende ich in VBA die trim-Funktion an?

Wie wende ich in VBA die trim-Funktion an?
Stefan
Hallo,
ich will beim Kopieren von Werten von einer Zelle in eine andere die Leerzeichen rausfiltern - TRIM
Worksheets("Daten").Cells(1, 4).Copy ThisWorkbook.Worksheets("Rohdaten").Trim(Cells(1, 3))
Leider funktioniert das nicht.
Was mache ich falsch?
Danke Euch.
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Wie wende ich in VBA die trim-Funktion an?
13.10.2011 12:10:37
Henrik
Hallo,
also erst kopieren, und dann:
ThisWorkbook.Worksheets("Rohdaten").Cells(1, 3) = WorksheetFunction.Trim(ThisWorkbook.Worksheets("Rohdaten").Cells(1, 4))
dabei werden aber nur vorangehende, nachfolgende und doppelt vorkommende Leerzeichen gelöscht.
Alle Leerzeichen löscht du so:
ThisWorkbook.Worksheets("Rohdaten").Cells(1, 3) = Replace(ThisWorkbook.Worksheets("Rohdaten").Cells(1, 4), " ", "")
gruß henrik
Anzeige
AW: Wie wende ich in VBA die trim-Funktion an?
13.10.2011 12:25:44
Stefan
ah danke,
ich versuch das gleich mal.
Vg
TRIM existiert auch als VBA-Funktion
13.10.2011 14:51:48
NoNet
Hallo Henrik,
mit dieser Syntax verwendest Du in VBA die Tabellenblatt-Funktion GLÄTTEN()

ThisWorkbook.Worksheets("Rohdaten").Cells(1, 3) = WorksheetFunction.Trim(ThisWorkbook.Worksheets("Rohdaten").Cells(1, 4))
Stattdessen kannst Du auch direkt die VBA-Funktion TRIM() verwenden :

ThisWorkbook.Worksheets("Rohdaten").Cells(1, 3) = Trim(ThisWorkbook.Worksheets("Rohdaten").Cells(1, 4))
Gruß, NoNet
Der Countdown läuft - es gibt noch freie Plätze... :
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
wobei die VBA-Funktion TRIM() ...
14.10.2011 11:19:29
Rudi
Hallo,
nur anhängende und fürhrende Leerzeichen entfernt, nicht aber innere doppelte auf eins reduziert.
Gruß
Rudi
Stimmt ! - Da haben Sie korrekt ;-) _oT
14.10.2011 11:50:43
NoNet
_oT = "ohne Text"
kombination aus Trim und Clean
13.10.2011 15:43:44
Tino
Hallo,
ich verwende gern eine Kombination aus Trim und Clean (SÄUBERN),
weil diese auch Zeilenumbrüche entfernt.
Nachteil (manchmal auch ein Vorteil) Clean entfernt auch Zeilenumbrüche im Text.
Wenn man als Rückgabe einen Text erwartet, kann man auch die VBA Trim Version
mit dem Dollarzeichen verwenden (siehe Beispiel), diese soll etwas schneller sein.

Sub Beispiel()
Dim sIn$, sOut$
sIn = " " & vbCr & "Hal" & vbCrlf & "lo" & vbCr
With Application.WorksheetFunction
sOut = Trim$(sIn) 'VBA Trim = WorksheetFunction.Trim
Debug.Print "Text: " & sOut, "Länge: " & Len(sOut)
sOut = .Trim(sIn) 'WorksheetFunction.Trim = VBA Trim
Debug.Print "Text: " & sOut, "Länge: " & Len(sOut)
'Wichtig erst Clean und danach Trim
sOut = Trim$(.Clean(sIn)) 'Kombination Trim u. WorksheetFunction.Clean
Debug.Print "Text: " & sOut, "Länge: " & Len(sOut)
End With
End Sub
Gruß Tino
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Trim-Funktion effektiv nutzen


Schritt-für-Schritt-Anleitung

Um die Trim-Funktion in VBA anzuwenden, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem du ALT + F11 drückst.

  2. Erstelle ein neues Modul über Einfügen > Modul.

  3. Schreibe den folgenden Code, um die Trim-Funktion zu verwenden:

    Sub TrimBeispiel()
        Dim sIn As String
        Dim sOut As String
        sIn = "   Beispieltext mit Leerzeichen   "
        sOut = Trim(sIn) ' Entfernt führende und nachfolgende Leerzeichen
        MsgBox sOut
    End Sub
  4. Führe das Makro aus, um zu sehen, wie der Text ohne die überflüssigen Leerzeichen aussieht.


Häufige Fehler und Lösungen

  • VBA Trim funktioniert nicht: Stelle sicher, dass du die Funktion korrekt aufrufst. In VBA verwendest du Trim() oder WorksheetFunction.Trim().

  • Leerzeichen werden nicht entfernt: Die Trim-Funktion entfernt nur führende und nachfolgende Leerzeichen. Um alle Leerzeichen zu entfernen, nutze die Replace-Funktion:

    ThisWorkbook.Worksheets("Rohdaten").Cells(1, 3) = Replace(ThisWorkbook.Worksheets("Rohdaten").Cells(1, 4), " ", "")

Alternative Methoden

Neben der Trim-Funktion kannst du auch die Clean-Funktion verwenden, um nicht druckbare Zeichen zu entfernen. Kombiniere sie mit Trim, um die besten Ergebnisse zu erzielen:

sOut = Trim$(Application.WorksheetFunction.Clean(sIn))

Diese Methode entfernt sowohl unerwünschte Leerzeichen als auch nicht druckbare Zeichen aus dem Text.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung der Trim-Funktion in Excel VBA:

  1. Trim für Zellenwerte:

    Sub TrimZellen()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Worksheets("Daten")
        ws.Cells(1, 2).Value = Trim(ws.Cells(1, 1).Value)
    End Sub
  2. Kombination von Trim und Clean:

    Sub TrimUndClean()
        Dim sIn As String
        sIn = "   Text mit Zeilenumbrüchen" & vbCrLf & " und Leerzeichen   "
        MsgBox Trim$(Application.WorksheetFunction.Clean(sIn))
    End Sub

Tipps für Profis

  • Nutze Trim$ für eine schnellere Ausführung, wenn du mit Strings arbeitest. Diese Variante ist besonders nützlich, wenn du viele Trim-Vorgänge in einer großen Datenmenge durchführst.

  • Achte darauf, dass die Trim-Funktion in VBA nur einfache Leerzeichen entfernt. Wenn du spezielle Anforderungen hast, wie das Entfernen von doppelten Leerzeichen innerhalb eines Strings, solltest du eine benutzerdefinierte Funktion schreiben.


FAQ: Häufige Fragen

1. Wie funktioniert die Trim-Funktion in VBA?
Die Trim-Funktion in VBA entfernt führende und nachfolgende Leerzeichen aus einem String. Für das Entfernen aller Leerzeichen kannst du die Replace-Funktion verwenden.

2. Gibt es Unterschiede zwischen Trim, LTrim und RTrim?
Ja, LTrim entfernt nur führende Leerzeichen, während RTrim nur nachfolgende Leerzeichen entfernt. Die Trim-Funktion entfernt beide.

3. Kann ich Trim in Excel-Formeln verwenden?
Ja, die TRIM-Funktion ist auch in Excel-Formeln verfügbar, funktioniert jedoch nur in der Tabelle und nicht in VBA.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige