Автор Тема: Word VBA Макросы: Как убрать с конца выделенной области пустые абзацы?  (Прочитано 38 раз)

Оффлайн oleg4226

  • Посетитель форума
  • Сообщений: 8
1. Юзер выделил текст на странице.
2. Макрос должен проверить, есть ли на конце выделенной области пустые абзацы.
3. Если пустые абзацы присутствуют, то макрос должен уменьшить выделенную область: выделение на тексте остаётся, а с абзацев оно снимается.

Как это сделать?

И ещё хотел бы узнать, как в пункте 3 удалить пустые абзацы, оставив тест выделенным?

Оффлайн Администратор

  • Administrator
  • Сообщений: 1720
Убрать с конца выделенной области пустые абзацы можно так:

Sub Макрос()
    ' Убираем с конца выделенной области пустые абзацы.
    Selection.MoveEndWhile Cset:=Chr(13), Count:=wdBackward
    ' Включаем в выделенную область символ абзаца.
    Selection.MoveEnd Unit:=wdCharacter, Count:=1
End Sub


Если надо удалить, то так:

Sub Макрос()

    ' Делаем цикл, пока на конце выделенной области есть пустой абзац.
    Do While Selection.Paragraphs.Last.Range.Characters.Count = 1
        ' Удаление пустого абзаца с конца выделенной области.
        Selection.Paragraphs.Last.Range.Delete
        ' Если выделенная область стала в виде мигающего курсора, то значит удалёно всё, что было выделено.
        If Selection.Type = wdSelectionIP Then
            Exit Do
        End If
    Loop
   
End Sub

Оффлайн Администратор

  • Administrator
  • Сообщений: 1720
Написал вам письмо на почту с заголовком "Письмо с форума". Написал именно на почту, а не на форум.

Оффлайн oleg4226

  • Посетитель форума
  • Сообщений: 8
Спасибо - работают ваши способы!