Я не часто использую VBA, и я пытаюсь собрать макрос, который выделяет весь текст в документе с размером шрифта 13,5 пт и меняет его стиль на заголовок 1. Пока у меня есть следующий код:
Sub FormatSectionHeaders()
Application.ScreenUpdating = False
Dim oRng As Word.Range
Set oRng = ActiveDocument.Content
oRng.Find.ClearFormatting
oRng.Find.Replacement.ClearFormatting
oRng.Find.Replacement.Style = wdStyleHeading1
With oRng.Find
.Font.Size = 13.5
.Text = ""
.Execute Format:=True, Replace:=wdReplaceAll, Wrap:=wdFindContinue
End With
End Sub
При этом выбирается правильный текст и применяется стиль, но по какой-то причине он не переопределяет все исходное форматирование - например, шрифт и размер шрифта не изменяются, чтобы соответствовать стилю. Может кто-нибудь сказать мне, что я делаю не так?
Примечание: я могу заставить это работать со следующим циклом, но это намного медленнее, чем использовать replaceall, поэтому я хотел бы попытаться исправить приведенный выше код, а не использовать что-то вроде этого.
With oRng.Find
.ClearFormatting
.Text = ""
.Font.Size = 13.5
While .Execute
oRng.Style = ActiveDocument.Styles(wdStyleHeading1)
oRng.Collapse wdCollapseEnd
Wend
End With