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

Forumthread: VBA im String mehrfache Leerzeichen auf eines reduzieren

VBA im String mehrfache Leerzeichen auf eines reduzieren
27.09.2024 11:09:47
Joschi Witchcraft
Hallo Forum,

ich verarbeite externe Daten. Dabei wird zur Trennung der Worte das Leerzeichen benutzt (Wort-Trennung). Das erlaubt mir, den String (pro Zeile!) mit Hilfe der Split-Funktion zu trennen. Gelegentliches Problem: manchmal ist zwischen den Worten mehr als ein Leerzeichen, was zur Folge hat, dass dies von Split als weiteres Trennzeichen angesehen wird, und damit das x. Wort nicht an der x. Stelle im Arrray zu finden ist.

Trim(String) entfernt lediglich die Leerzeichen am Beginn und am Ende des Strings.

Gibt es eine andere Lösung als dies mittels Loop abzuarbeiten?

Gruß Joschi

PS: eine Umstellung auf ein anders "Trennzeichen" ist aktuell nicht möglich.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA im String mehrfache Leerzeichen auf eines reduzieren
27.09.2024 11:32:42
BoskoBiati2
Hi,

Split(Application.Trim(strtemp), " ")

Betonung liegt auf Application.trim
Gruß

Edgar
AW: VBA im String mehrfache Leerzeichen auf eines reduzieren
27.09.2024 13:18:10
Joschi Witchcraft
Hallo.

Ich bedanke mit bei allen, die auf meine Frage geantwortet haben. Ich habe mich für "Application.Trim" entschieden. Ein erster Test war sehr erfolgreich.

Wieder etwas dazugelernt.

Gruß Joschi
Anzeige
AW: VBA im String mehrfache Leerzeichen auf eines reduzieren
27.09.2024 11:35:25
daniel
Hi
verwende Worksheetfunction.Trim(x)
das ist das Glätten aus Excel und das entfernt auch die doppelten Leerzeichen innerhalb des Textes
Gruß Daniel
AW: VBA im String mehrfache Leerzeichen auf eines reduzieren
27.09.2024 11:39:51
UweD
Hallo

Nimm mal Application.Trim()

LG UweD
AW: VBA im String mehrfache Leerzeichen auf eines reduzieren
27.09.2024 11:44:04
Yal
nun ja, Application.Trim ist die einfachste Lösung.

nicht desto trotz, eine allgemein erweiterbare Lösung mit regular expression:

Function Leerzeichen_reduzieren(ByVal Text As String) As String

Dim R As Object
Set R = CreateObject("VBScript.RegExp")
R.Pattern = "\s{2,}" 'Details siehe https://regexr.com oder https://regex101.com
R.Global = True
Leerzeichen_reduzieren = R.Replace(Text, " ")
End Function

Sub Test()
Debug.Print Leerzeichen_reduzieren("hallo zusammen wie geht es euch")
End Sub


VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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