Sub NumberToTextUK() ' Paul Beverley - Version 25.03.26 ' 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 wdCollapseStart 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 numWords = rng.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 <> rng.Text Then rng.Text = numWords rng.Collapse wdCollapseEnd rng.Select With Selection.Find .Text = oldFind .Replacement.Text = oldReplace .MatchWildcards = False End With Selection.Collapse wdCollapseEnd Selection.MoveRight wdWord, 1 End Sub