AW: VBA: Führendes Leerzeichen löschen
02.11.2015 12:52:48
Daniel
wobei man beachten muss das Glätten nicht nur die führenden Leerzeichen löscht (nur das führende war die Anforderung), sondern auch die folgenden Leerzeichen und alle mehrfach aufeinanderfolgenden Leerzeichen innerhalb des Textes.
Die Funktion LTrim, welche nur die führenden Leerzeichen entfernt, gibt es in Excel nicht.
wenn man mit Formeln arbeiten will, müsste man sich so behelfen:
a) wenn es immer nur genau ein oder kein führendes Leerzeichen geben kann, mit dieser Formel:
=Wenn(Links(B2;1)=" ";Teil(B2;2;9999);B2)
also Code dann:
With ActiveSheet.usedrange
With .columns(.columns.Count + 1)
.FormulaR1C1 = "=IF(Left(RC2,1)="" "",Mid(RC2,2,9999),RC2)"
.Offset(0, 2 - .column) = .value
.ClearContents
End with
end With
b) wenn es mehrere führende Leerzeichen geben kann, müsste man das LTrim auch in Excel verfügbar machen.
hierzu schreibt man dann folgenden code in ein allgmeines Modul:
Public Function GlättenLinks(txt as string) as string
GlättenLinks = LTrim(txt)
End Function
dann kann man die Funktion GlättenLinks in Excel wie eine normale Excelfunktion einsetzen und das auch im Code verwenden:
With ActiveSheet.usedrange
With .columns(.columns.Count + 1)
.FormulaR1C1 = "=GlättenLinks(RC2)"
.Offset(0, 2 - .column) = .value
.ClearContents
End with
end With
Gruß Daniel