Sub NumberToText() ' Paul Beverley - Version 24.06.22 ' Converts next number into text oldFind = Selection.Find.Text oldReplace = Selection.Find.Replacement.Text ' Find a number (six figures max) Selection.End = Selection.Start With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = "[0-9]{1,6}" .Forward = True .MatchWildcards = True .MatchWholeWord = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With startNum = Selection.Start ' 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 Selection.Copy Selection.Delete DoEvents ' Paste the text as unformatted, replacing the field Selection.PasteSpecial Link:=False, DataType:=wdPasteText, _ Placement:=wdInLine, DisplayAsIcon:=False With Selection.Find .Text = oldFind .Replacement.Text = oldReplace .MatchWildcards = False End With Set rng = Selection.Range.Duplicate rng.MoveStart , -1 ch1 = rng.Text rng.MoveStart , 1 rng.MoveEnd , 1 ch2 = rng.Text If (UCase(ch1) <> LCase(ch1)) And (UCase(ch2) <> LCase(ch2)) Then Selection.TypeText Text:=" " End If Set rng = ActiveDocument.Range(Start:=startNum - 1, End:=startNum) If rng.Text <> " " Then rng.InsertBefore Text:=" " End Sub