Rubrik: Variablen/Strings · String-Operationen | VB-Versionen: VB5, VB6 | 25.07.07 |
Trim-Funktionen erweitert Diese neuen Trim-Funktionen ersetzen die bisherigen VBA Trim-Funktionen und bieten die Möglichkeit ein benutzerdefiniertes Zeichen oder ganze Zeichenfolgen anzugeben. | ||
Autor: Dieter Otter | Bewertung: | Views: 10.739 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Die VBA-Funktionen "LTrim", "RTrim" und "Trim" gehören zu den immer wieder benötigten Funktionen und dienen dazu, unnötige Leerzeichen am Anfang und Ende eines Strings zu entfernen. Leider beschränken sich die Funktionen auch wirklich nur auf das Entfernen von Leerzeichen, weshalb ich Ihnen heute "meine" erweiterten Trim-Funktionen vorstellen möchte. Mit den neuen Trim-Funktionen kann das zu entfernende Zeichen frei festgelegt werden - sogar ganze Zeichenfolgen können angegeben werden.
Fügen Sie nachfolgenden Code in ein Modul:
Public Function LTrim(ByVal sText As String, _ Optional ByVal sChar As String = " ") As String ' benutezrdefiniertes Zeichen / Zeichenfolge ' am Anfang des Strings entfernen Dim nLen As Long nLen = Len(sChar) While Left$(sText, nLen) = sChar sText = Mid$(sText, nLen + 1) Wend LTrim = sText End Function
Public Function RTrim(ByVal sText As String, _ Optional ByVal sChar As String = " ") As String ' benutezrdefiniertes Zeichen / Zeichenfolge ' am Ende des Strings entfernen Dim nLen As Long nLen = Len(sChar) While Right$(sText, nLen) = sChar sText = Left$(sText, Len(sText) - nLen) Wend RTrim = sText End Function
Public Function Trim(ByVal sText As String, _ Optional ByVal sChar As String = " ") As String ' benutezrdefiniertes Zeichen / Zeichenfolge ' am Anfang und Ende des Strings entfernen Trim = LTrim(RTrim(sText, sChar), sChar) End Function
Anwendungsbeispiele
' alle Leerzeichen entfernen sText = Trim(sText)
' alle Zeilenumbruchzeichen entfernen sText = Trim(sText, vbCrLf)
' SQL-Abfragestring zusammensetzen Dim sSQL As String sSQL = "SELECT AutoNr, Name FROM Tabelle WHERE " If Len(sName) > 0 Then sSQL = sSQL & "Name LIKE '" & sName & "%' AND " If Len(sPlz) > 0 Then sSQL = sSQL & "Plz = '" & sPlz & "'" ' Zeichenfolge " AND " am Ende des Strings entfernen (falls vorhanden) sText = RTrim(sText, " AND ") ' Zeichenfolge " WHERE " am Ende des Strings entfernen (falls vorhanden) sText = RTrim(sText, " WHERE ") sSQL = sSQL & " ORDER BY Name"