Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: KR от 30 июня 2019, 13:46

Название: Word VBA Макросы: Искать ближайший заголовок.
Отправлено: KR от 30 июня 2019, 13:46
Подскажите, как найти ближайший заголовок (любой уровень), который находится над текстовым курсором?
Необходимо найти и изменить текст сразу после ближайшего заголовка.
Название: Re: Word VBA Макросы: Искать ближайший заголовок.
Отправлено: Администратор от 30 июня 2019, 15:10
Макрос
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
[свернуть]
Название: Re: Word VBA Макросы: Искать ближайший заголовок.
Отправлено: KR от 30 июня 2019, 16:09
Все прекрасно работает. Спасибо!