Sub NumberToTextUK() ' Paul Beverley - Version 13.07.23 ' Converts next number into text, eg "two hundred and forty-two" oldFind = Selection.Find.Text oldReplace = Selection.Find.Replacement.Text ' Find a number (six figures max) Selection.Collapse wdCollapseEnd With Selection.Find .ClearFormatting .Text = "[0-9]{1,6}" .Replacement.Text = "" .Forward = True .MatchWildcards = True .Execute End With ' Create a field containing the digits and a special format code Selection.Fields.Add Range:=Selection.Range, _ Type:=wdFieldEmpty, Text:="= " + Selection + " \* CardText", _ PreserveFormatting:=True ' Select the field and copy it Selection.MoveStart , -1 Set rng = Selection.Range.Duplicate Selection.Fields(1).Unlink DoEvents rng.Select numWords = Selection.Text If InStr(numWords, "dred") > 0 And Right(numWords, 4) <> "dred" Then numWords = _ Replace(numWords, "hundred", "hundred and") If InStr(numWords, "hundred") > 0 And InStr(numWords, "thousand") > 0 Then numWords = Replace(numWords, "thousand", "thousand,") Else If Right(numWords, 4) <> "sand" Then numWords = _ Replace(numWords, "thousand", "thousand and") End If If numWords <> Selection.Text Then Selection.Text = numWords With Selection.Find .Text = oldFind .Replacement.Text = oldReplace .MatchWildcards = False End With Selection.Collapse wdCollapseEnd Selection.MoveRight wdWord, 1 End Sub