Clever-Excel-Forum

Normale Version: Positionen von Leerzeichen bestimmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebes Forum,

ich habe bei einem String  eine Positionsangabe vorgegeben.

Wie in folgendem Code:
Code:
Sub Wort_durch_Leerzeichen_ersetzen()
Dim vbSatz, vbErsatz, vbPos,vbPosR, vbPosL
vbPos = 14
vbSatz = "Heute ist wunderbares Wetter und ich gehe zum Strand."

vbPosL = vbPos
While Not Mid(vbSatz, vbPosL, 1) = " "
vbPosL = vbPosL - 1
Wend

Debug.Print "Leerzeichen links bei Position: " & vbPosL

vbPosR = vbPos
While Not Mid(vbSatz, vbPosR, 1) = " "
vbPosR = vbPosR + 1
Wend

Debug.Print "Leerzeichen rechts bei Position: " & vbPosR

End Sub

Die Positionsangabe ist hier mit vbPos = 14 angegeben. Das ist mitten in dem Wort "wunderbar". Jetzt möchte ich, die Position des ersten Leerzeichens links und rechts von diesem Wort bestimmen,
z.B. um über die Funktion Mid(vbSatz, vbPosLinks + 1, vbPosRechts - vbPosLinks) das Wort "wunderbar" selbst zu ermitteln. Klappt ja auch im obigen Beispiel. Kann man so etwas nicht
wesentlich besser lösen als mit 2 while Schleifen?
Hallo VBATartar,
geht schon, aber ist nicht kürzer:
Sub Wort()
Dim vbPos, vbSatz, vbErg, i, erg
  vbPos = 14
  vbSatz = "Heute ist wunderbares Wetter und ich gehe zum Strand."
  erg = vbSatz 'falls kein Leerzeichen
  i = InStrRev(Left(vbSatz, vbPos), " ")
  If i = 0 Then Exit Sub 'falls kein nachfolgendes Leerzeichen
  erg = Mid(vbSatz, i + 1)
  i = InStr(1, erg, " ") 'Pos. nachfolgendes Leerzeichen
  If i > 0 Then erg = Left(erg, i - 1)
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0

Gruß der AlteDresdner
Das Wort wunderbares läßt sich wunderbar so bestimmen:

Debug.Print Split(vbSatz)(UBound(Split(Left(vbSatz, vbPos))))
@Danke Quantum. Ein Quanten(um) sprung für mich!