Positionen von Leerzeichen bestimmen
#1
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?
Antwortento top
#2
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
Gruß der AlteDresdner (Win10, Off2010)
Antwortento top
#3
Das Wort wunderbares läßt sich wunderbar so bestimmen:

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


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste