You can manipulate a range in a variety of ways, but a couple of examples using your text. Note that you don't have to select the range to process it. The .select rows are only inserted to show what is happening to the range directly in the text. If you are moving range ends then choose a method that is unambiguous with regard to the text
Code:
Sub Macro1()
Dim oRng As Range
Set oRng = Selection.Range
oRng.MoveEndUntil "?"
oRng.End = oRng.End + 1
oRng.Select 'not necessary to process the range
MsgBox oRng.Text
oRng.MoveEndUntil "u", wdBackward
oRng.Select 'not necessary to process the range
MsgBox oRng.Text
End Sub
Sub Macro2()
Dim oRng As Range
Set oRng = Selection.Range
'move to the end of the paragraph (before the paragraph mark)
oRng.End = oRng.Paragraphs(1).Range.End - 1
oRng.Select 'not necessary to process the range
MsgBox oRng.Text
'Move the end back four 'words'
oRng.MoveEnd wdWord, -4
'Remove the final space from the range
oRng.End = oRng.End - 1
oRng.Select 'not necessary to process the range
MsgBox oRng.Text
End Sub
You can also have multiple ranges e.g.
Code:
Sub Macro3()
Dim orng As Range
Dim oStart As Range
Set oStart = Selection.Range
Set orng = Selection.Range
'move to the end of the paragraph (before the paragraph mark)
orng.End = orng.Paragraphs(1).Range.End - 1
orng.Select 'not necessary to process the range
MsgBox orng.Text
'Move the end back four 'words'
orng.MoveEnd wdWord, -4
'Remove the final space from the range
orng.End = orng.End - 1
orng.Select 'not necessary to process the range
MsgBox orng.Text
'go back to the original selection
oStart.Select 'not necessary to process the range
MsgBox oStart.Text
End Sub