That's fairly straightforward and I assume you know that you have spelled 'John' incorrectly?
You only need to change the line
Code:
.Wrap = wdFindContinue
to
however
Code:
Sub ReplaceName()
Dim oRng As Range
If Len(Selection.Range) = 0 Then
MsgBox "Select the text first", vbCritical
Exit Sub
End If
Set oRng = Selection.Range
With oRng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "Jhon"
.Replacement.Text = "Robert"
.Forward = True
.Wrap = wdFindStop
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
Set oRng = Nothing
End Sub