Hallo,
in einer Zeichenfolge unterschiedlicher Länge befinden sich am Anfang, am Ende, aber auch innerhalb der Zeichenfolge an mehreren Positionen Leerschritte (einer bzw mehrere nebeneinander).Die am Anfang und Schluss befindlichen sollen alle gelöscht werden, was mir mit
Private Sub cbo1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Do While Left(cbo1.Text, 1) = " "
cbo1.Text = Right(cbo1.Text, Len(cbo1.Text) - 1)
Loop
Do While Right(cbo1.Text, 1) = " "
cbo1.Text = Left(cbo1.Text, Len(cbo1.Text) - 1)
Loop
End Sub
gelingt.
Innerhalb der Zeichenfolge sollen an allen Positionen die mehreren Leerschritte bis auf jeweils einen gelöscht werden: Also Klaus LSLS Meier soll in Klaus LS Meier umgewandelt werden. Müsste doch wohl über eine InStr-Funktion gehen, aber wie? Danke für Tips.
Gruß
Wilhelm
in einer Zeichenfolge unterschiedlicher Länge befinden sich am
Anfang, am Ende, aber auch innerhalb der Zeichenfolge an
mehreren Positionen Leerschritte (einer bzw mehrere
nebeneinander).Die am Anfang und Schluss befindlichen sollen
alle gelöscht werden, was mir mit
Innerhalb der Zeichenfolge sollen an allen Positionen die
mehreren Leerschritte bis auf jeweils einen gelöscht werden:
Also Klaus LSLS Meier soll in Klaus LS Meier umgewandelt
werden.
Hallo Wilhelm,
Private Sub cbo1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
cbo1.Text = Application.Trim(cbo1.Text)
End Sub
Gruß
Reinhard
Hallo Reinhard,
mit
cbo1.Text = Trim(cbo1.Text)
löscht der Code die äußeren Leerzeichen. Mir kommt es aber auch insbesondere darauf an, bestimmte Leerzeichen i n n e r h a l b der Zeichenkette zu löschen, so dass innerhalb der Kette immer nur ein Leerschritt bleibt:
Ist: Reinhard ist mir immer ein schneller und zuverlässiger Helfer.
Soll: Reinhard ist mir immer ein schneller und zuverlässiger Helfer.
Diese unerwünschten Leerzeichen kommen aus den abgerufenen Vorcodes(unser Austausch neulich).
Gruß
Wilhelm
Hallo,
ich misch mich mal ein. 
Mir kommt es aber
auch insbesondere darauf an, bestimmte Leerzeichen i n n e r
h a l b der Zeichenkette zu löschen, so dass innerhalb der
Kette immer nur ein Leerschritt bleibt
verstehe ich das richtig? Aus „xx XX“ soll „xx XX“ (erst zwei Leerzeichen zwischen den kleinen und den großen, dann nur noch eins) werden?
Dann würde ich das mit ‚Replace‘ erledigen.
While Instr(txt, " ")
txt = Replace(txt, " "," ")
Wend
Gruß Rainer
Hallo Wilhelm,
cbo1.Text = Trim(cbo1.Text)
löscht der Code die äußeren Leerzeichen.
ja.
Das kommt davon wenn man meinen Code kürzt
, benutze ihn so wie ich ihn schrieb.
Excel-Vba kennt zwei TRIMs.
Gruß
Reinhard
Mir kommt es aber
auch insbesondere darauf an, bestimmte Leerzeichen i n n e r
h a l b der Zeichenkette zu löschen, so dass innerhalb der
Kette immer nur ein Leerschritt bleibt:
Ist: Reinhard ist mir immer ein schneller und
zuverlässiger Helfer.
Soll: Reinhard ist mir immer ein schneller und zuverlässiger
Helfer.
Diese unerwünschten Leerzeichen kommen aus den abgerufenen
Vorcodes(unser Austausch neulich).
Gruß
Wilhelm
An R. und R.
anke, jetzt läuft alles!
Danke