ich google seit 1,5 Tagen im XL-Forum nach einer Lösung, um in einem String mehrere aufeinander folgende Leerzeichen durch ein einziges Semikolon zu ersetzen.
Ich bin bisher leider nicht fündig geworden.
Könnt Ihr mir helfen?
LG
Sabine
Function MehrfacheLeerZeichenErsetzen(derString As String)
Dim strTmp As String, i As Integer, strMid As String
For i = 1 To Len(derString)
strMid = Mid(derString, i, 1)
If strMid " " Then
strTmp = strTmp & strMid
ElseIf strMid = " " And Mid(derString, i + 1, 1) " " Then
If Right(strTmp, 1) ";" Then strTmp = strTmp & strMid
ElseIf Right(strTmp, 1) ";" Then strTmp = strTmp & ";"
End If
Next
MehrfacheLeerZeichenErsetzen = strTmp
End Function
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
A
1 Abc 123 DEF 123 GhI 4567 Qrste
2 Abc 123;DEF;123 GhI;4567;Qrste
Benutzte Formeln:
A2: =WECHSELN(WECHSELN(WECHSELN(A1; " "; ";"); "; "; ";"); ";;"; ";")
Gruß
Franz
Sub MehrfachLeerzeichenDurchEinSemicolon()
Dim strText As String, strErgebnis As String
strText = "Abc 123 DEF 123 GhI 4567 Qrste"
With Application.WorksheetFunction
strErgebnis = .Substitute(strText, " ", ";")
MsgBox strErgebnis
strErgebnis = .Substitute(strErgebnis, "; ", ";")
MsgBox strErgebnis
strErgebnis = .Substitute(strErgebnis, ";;", ";")
MsgBox strErgebnis
End With
End Sub
oder in etwas unübersichtlicherer Form geschachtelt:
Sub MehrfachLeerzeichenDurchEinSemicolon2()
Dim strText As String, strErgebnis As String
strText = "Abc 123 DEF 123 GhI 4567 Qrste"
With Application.WorksheetFunction
strErgebnis = .Substitute(.Substitute(.Substitute(strText, " ", ";"), "; ", ";"), ";;", ";" _
)
MsgBox strErgebnis
End With
End Sub
Option Explicit
Function dblspacekiller(strSpace As String)
Dim i As Integer
Dim bolSpace As Boolean
bolSpace = False
strSpace = Trim(strSpace) 'äußere Leerzeichen löschen
If Len(strSpace) > 4 Then
For i = Len(strSpace) - 2 To 2 Step -1
strSpace = Replace(strSpace, String(i, " "), ";")
Next
End If
dblspacekiller = strSpace
End Function
Führende und abschließende Leerzeichen werden einfach entfernt, ohne Erstzung durch ";".
Gruß
Harry
Option Explicit
Function dblspacekiller(strSpace As String)
Dim i As Integer
strSpace = Trim(strSpace) 'äußere Leerzeichen löschen
If Len(strSpace) >= 4 Then
For i = Len(strSpace) - 2 To 2 Step -1
strSpace = Replace(strSpace, String(i, " "), ";")
Next
End If
dblspacekiller = strSpace
End Function
Um mehrere aufeinander folgende Leerzeichen in Excel durch ein Semikolon zu ersetzen, kannst Du folgende Methoden verwenden:
VBA-Funktion erstellen:
ALT + F11
.Einfügen
> Modul
).Function MehrfacheLeerZeichenErsetzen(derString As String) As String
Dim strTmp As String, i As Integer, strMid As String
For i = 1 To Len(derString)
strMid = Mid(derString, i, 1)
If strMid <> " " Then
strTmp = strTmp & strMid
ElseIf strMid = " " And Mid(derString, i + 1, 1) <> " " Then
If Right(strTmp, 1) <> ";" Then strTmp = strTmp & ";"
End If
Next
MehrfacheLeerZeichenErsetzen = strTmp
End Function
Verwendung der Funktion:
=MehrfacheLeerZeichenErsetzen(A1)
, wobei A1
die Zelle mit dem Text ist.Fehler: Die Funktion gibt unerwartete Ergebnisse zurück.
GLÄTTEN
-Funktion, um unnötige Leerzeichen zu entfernen.Fehler: Die Funktion funktioniert nur für einfache Texte.
WECHSELN-Funktion:
WECHSELN
-Funktion verwenden, um mehrere Ersetzungen in einer Zelle durchzuführen. Beispiel:=WECHSELN(WECHSELN(WECHSELN(A1; " "; ";"); "; "; ";"); ";;"; ";")
VBA Subroutine:
Sub MehrfachLeerzeichenDurchEinSemicolon()
Dim strText As String, strErgebnis As String
strText = "Abc 123 DEF 123 GhI 4567 Qrste"
With Application.WorksheetFunction
strErgebnis = .Substitute(strText, " ", ";")
MsgBox strErgebnis
strErgebnis = .Substitute(strErgebnis, "; ", ";")
MsgBox strErgebnis
strErgebnis = .Substitute(strErgebnis, ";;", ";")
MsgBox strErgebnis
End With
End Sub
Beispiel für die VBA-Funktion:
"dgf dfddf dd dgdgdfdf dfg ddfd dfdg df dg gd gd dg dg"
in der Zelle A1 hast, kannst Du die Funktion =MehrfacheLeerZeichenErsetzen(A1)
verwenden, um die Ausgabe zu erhalten.Beispiel für die WECHSELN-Funktion:
=WECHSELN(WECHSELN(WECHSELN(A1; " "; ";"); "; "; ";"); ";;"; ";")
GLÄTTEN
-Funktion, um sicherzustellen, dass nur ein einzelnes Leerzeichen zwischen Wörtern verbleibt, bevor Du andere Ersetzungen vornimmst.VBA replace mehrere Zeichen
-Funktion für komplexere Ersetzungen verwenden kannst, um die Effizienz zu steigern.1. Kann ich die Ersetzung auch ohne VBA durchführen?
Ja, die WECHSELN
-Funktion kann mehrfach verschachtelt werden, um mehrere Leerzeichen zu ersetzen.
2. Funktioniert diese Methode in allen Excel-Versionen? Die vorgestellten Funktionen und Methoden funktionieren in Excel-Versionen ab 2000. Achte darauf, dass Du die richtigen Funktionen entsprechend Deiner Version verwendest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen