View Single Post
 
Old 07-23-2025, 08:55 AM
vivka vivka is offline Windows 7 64bit Office 2016
Expert
 
Join Date: Jul 2023
Posts: 302
vivka is on a distinguished road
Default

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

Last edited by vivka; 07-23-2025 at 10:12 PM.
Reply With Quote