Word VBA Макросы: Искать ближайший заголовок.

Автор KR, 30 июня 2019, 13:46

KR

Подскажите, как найти ближайший заголовок (любой уровень), который находится над текстовым курсором?
Необходимо найти и изменить текст сразу после ближайшего заголовка.

Администратор

Макрос
Sub Макрос()
   
    Dim rng As Range
   
   
    '1. Создание ссылки на выделенный фрагмент или на мигающий курсор.
    Set rng = Selection.Range.Duplicate
    '2. Переставляем ссылку в начало ближайшего заголовка, который находится над курсором.
    Set rng = rng.GoToPrevious(wdGoToHeading)
    '3. Создаём ссылку на фрагмент, в котором находится абзац, который находится после заголовка.
    Set rng = rng.Paragraphs(1).Next.Range
    '4. Убираем с конца абзаца знак абзаца, чтобы не удалить абзац при вставке текста.
    rng.MoveEnd Unit:=wdCharacter, Count:=-1
    '5. Заменяем в абзаце текст на новый.
    rng.Text = "text"
   
End Sub
[свернуть]

KR