Test file https://1drv.ms/u/s!AviK4OVgysDigfoU...5vgXw?e=xatcnV

Code below was adapted a little from that supplied on another forum by Macropod, whom I notice is in this forum also, so might be familiar with this code.
Attached is the test document. Basically this stage of markup of the file (which is processed by another app) I am trying to markup Bible chapter and verse numbers. The example shows just the chapter:verse. This needs a Book name which in this case I have set to Matthew in the code below. All you need to do to test is to select a couple of paragraphs in whole and run the code.

This with hyperlink text

22:4
. The king reiterates the honor of the invitation.
22:5. Ignoring the king would be scandalously rude, .....
22:6. This behavior would obviously have .....

becomes this. Which has not extended the hyperlink text to include Matthew

Matthew 22:4. The king reiterates the honor of the invitation.
Matthew 22:5. Ignoring the king would be scandalously rude, .....
Matthew 22:6. This behavior would obviously have .....

The next stage that might be required in some cases is to markup this text, but the macro that is specifically designed for this part does not like the mixed, plain text and hypelink text.

So my question is, how to code this to "extend" the hyperlink text so it Includes Matthew.

Thanks to anyone who can help
Jon.



Sub testforforum()
Dim prefix     As String


prefix = "Matthew"    'InputBox("Please enter the Bible book Name")
'If ComboBox1BibleBookName.text = "" Then
'    MsgBox ("Please set a Bible book from the ComboBox")
'    Exit Sub
'End If
'InSelection = False
'If selection.Type = wdSelectionIP Then InSelection = True
'
'If InSelection = True Then
'
'    MsgBox ("select some text")
'    Exit Sub
'End If
Application.ScreenUpdating = False
Dim RngFnd As Range, StrTxt As String


'If CheckBox3PrefixChVerseAnywhereInSelection.Value = False Then
    '####################################


    With selection
        Set RngFnd = .Range
        With .Range
            With .Find
                .ClearFormatting
                .Replacement.ClearFormatting
                .text = "[0-9]{1,3}:[0-9\-\–:]{1,9}"
                .Replacement.text = ""
                .Forward = True
                .Format = False
                .Wrap = wdFindStop
                .MatchWildcards = True
                'Required font size and color can be set here
                .Font.Size = 10 'ComboBox2FontSize.Value
                '.Font.Color = 12611584


                .Execute
            End With
            Do While .Find.Found
                If .InRange(RngFnd) Then
                    If .Paragraphs.Count > 1 Then .Start = .Paragraphs(1).Range.End
                    If .Start = .Paragraphs(1).Range.Start Then
                        .Font.Size = ComboBox2FontSize.Value
                        StrTxt = .text
                        .InsertBefore prefix & " "


                        'If CheckBox4Bold.Value = True Then
                            .Font.Bold = True
                       ' End If
                        'If CheckBox5Blue.Value = True Then
                            .Font.ColorIndex = wdBlue
                        'End If
                        .Start = .End - Len(StrTxt)
                    End If
                    If .Hyperlinks.Count > 0 Then
                        If .Hyperlinks(1).Range.Start = .Paragraphs(1).Range.Start Then
                            With .Hyperlinks(1).Range
                                .Font.Size = 10 'ComboBox2FontSize.Value
                                StrTxt = .text
                                .InsertBefore prefix & " "


                                'If CheckBox4Bold.Value = True Then
                                    .Font.Bold = True
                                'End If
                                'If CheckBox5Blue.Value = True Then
                                    .Font.ColorIndex = wdBlue
                                'End If
                                .Start = .End - Len(StrTxt) - 1
                            End With
                        End If
                    End If
                Else
                    Exit Do
                End If
                .Collapse wdCollapseEnd
                .Find.Execute
            Loop
        End With
    End With
    RngFnd.Select
    Application.ScreenUpdating = True
    selection.Find.ClearFormatting
    selection.Find.Replacement.ClearFormatting
End Sub