Hi! Unfortunately, you can't use a one-line regex to do this. Try the following, which will work on the selecton, not on the entire doc (it's my personal preference):
Code:
Sub Find_N_Embolden()
Dim rng As range
Dim FindTxt As String
Application.ScreenUpdating = False
Set rng = Selection.range
FindTxt = "\@[A-Z]{1,}"
Do
With rng.Find
.text = FindTxt
.MatchWildcards = True
.Forward = True
.Wrap = wdFindStop
.Execute
End With
If rng.Find.found And rng.InRange(Selection.range) Then
If rng.Characters.Last.Next = "_" And _
rng.Characters.Last.Next.Next Like "[0-9]" And _
rng.Characters.Last.Next.Next.Next Like "[0-9]" And _
Not rng.Characters.Last.Next.Next.Next.Next Like "[A-Za-z0-9]" Then
rng.MoveEnd unit:=wdCharacter, count:=3
rng.Font.Bold = True: GoTo lbl_Next
ElseIf rng.Characters.Last.Next <> "_" Then
rng.Font.Bold = True
Else: GoTo lbl_Next
End If
Else
Exit Do
End If
lbl_Next:
rng.Collapse wdCollapseEnd
Loop
Application.ScreenUpdating = True
Set rng = Nothing
End Sub