Попробуйте:
Sub TEST_All_TEXT_CONVERT_COMMA_TO_HYPHEN_AT_PARAGRAPH_START()
Dim regExp As Object
Set regExp = CreateObject("vbscript.regexp")
With regExp
'Generic pattern
.Pattern = "(\r)([1-3 ]*[^ ]{1,15} )(\d+:\d+), (\d+\.)"
.Global = True
Selection.WholeStory
'Selection = .Replace(Selection, "$1$2$3-$4")
Dim Matches As Object
Dim Match As Object
Set Matches = .Execute(Selection)
For Each Match In Matches
Selection.Start = Match.FirstIndex
Selection.End = Match.FirstIndex + Match.Length - 1
Selection = .Replace(Selection, "$1$2$3-$4")
Next Match
End With
Selection.Collapse Direction:=wdCollapseEnd
'MsgBox "Done"
End Sub
Я не совсем уверен, что это сработает, но я надеюсь, что вы получите достаточно, чтобы решить вашу проблему.Вместо обработки всего текста за один раз, он использует метод Execute
для возврата набора совпадений, которые затем обрабатываются один за другим.