Як розгортати текст у Microsoft Word?


2

Я знайшов цей макрос для розгортання, але він розгортає весь документ, а не лише вибраний текст. Як я можу змінити його, щоб розгорнути лише вибраний текст?

 Sub pagebreaks()
'
' pagebreaks Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p^p"
        .Replacement.Text = "|"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p"
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "|"
        .Replacement.Text = "^p^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Відповіді:


2

"Знайти та замінити" може шукати символ нового рядка (схожий на зворотний подвійний тип "Р" типу "лайк" введіть тут опис зображення) і лише замінювати всіх тих, що нічого не мають. Лише перегляд підбірки тексту повинен працювати? Ні макросу не потрібно.

Використовуйте наступні коди, щоб знайти літери, форматування, поля чи спеціальні символи. Зверніть увагу, що деякі коди працюють лише у тому випадку, якщо параметр Use wildcards увімкнено або вимкнено.

Коди, які працюють у полі Знайти, що або Замінити на поле

Щоб знайти:
Позначка абзацу ( Знак абзацу)

Введіть:
^ p
(не працює у вікні Знайти що, коли ввімкнено параметр Використовувати підстановку),

або введіть:
^ 13

Або Знайти кілька разів, а потім видалити (за допомогою клавіші видалення) лише за допомогою виділення тексту?


будь-яка ідея, як замінити кілька ^ p одним? (замінити ^ p ^ p на ^ p не працює)
JinSnow

рішення з використанням підстановки: ЗНАЙДЕНО ([!.]) ^ 0013 ЗАМІНА ^ p, тоді слідкуйте за відповіддю
JinSnow

Немає ідей, uniqхоча це мені нагадує .
Xen2050

будь-яка ідея розгортати лише звичайний текст (не заголовки)? (Інтуїтивне рішення вибрати лише звичайний текст не працює).
JinSnow

Я зараз використовую LibreOffice, у програмі Writer встановлено прапорець "Поточний вибір лише", в ньому "Знайти та замінити", що реалізує ваше інтуїтивне рішення, але не впевнений у Word
Xen2050

1

Ось що працює макрос:

  Sub pagebreaks()
    '
    ' pagebreaks Macro
    '
    '


With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = "^p^p"
        .Replacement.Text = "|"
        .Forward = True
        .Wrap = wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
End With

With Selection.Find
        .Text = "^p"
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
End With

With Selection.Find
        .Execute Replace:=wdReplaceAll
        .Text = "|"
        .Replacement.Text = "^p^p"
        .Forward = True
        .Wrap = wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
End With

With Selection.Find
        .Execute Replace:=wdReplaceAll
End With
End Sub
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.