VBA вставить возврат каретки между жирным и жирным шрифтом - PullRequest
0 голосов
/ 08 марта 2019

У меня есть текстовый документ, который является транскрипцией интервью.Комментарии модераторов выделены жирным шрифтом, а комментарии респондентов - не жирными.Это длинный непрерывный цикл жирного и не жирного текста.Мне нужно добавить возврат каретки, чтобы между модератором и вопросами респондентов была пустая строка.Я нашел код ниже, чтобы вставить возврат каретки между определенным текстом, но я не знаю, как изменить его, чтобы вставить между жирным и не жирным текстом.Любая помощь с благодарностью!

Sub Test()
    ActiveDocument.Paragraphs(1).Range.Text = "Foo" & Chr(11) & "Bar"
End Sub

1 Ответ

0 голосов
/ 11 марта 2019

Это то, что я придумал, он использует одну подпрограмму для вставки разрыва после полужирного текста, а затем вызывает другую подпрограмму, чтобы сделать то же самое для не выделенного текста. Я использовал константу 'vbCrLf', которая обозначает перевод строки возврата Visual Basic, она равна Chr (13) + Chr (10), и я считаю, что это лучший способ для совместимости при вставке переноса строки в документ, а не Chr (11).

Sub InsertBreakAfterBold()
    'Select entire document
    Selection.WholeStory

    'Make each .Method belong to Selection.Find for readability
    With Selection.Find
        'Set search criteria for bold font
        .Font.Bold = True
        'Find next occurrence
        .Execute

        'Each time bold text is found add a line break to the end of it then find the next one
        Do While .Found
            Selection.Text = Selection.Text + vbCrLf
            .Execute
        Loop

    End With

    'Repeat process for nonbold text
    Call InsertBreakAfterNonbold
End Sub

Sub InsertBreakAfterNonbold()
    Selection.WholeStory

    With Selection.Find
        .Font.Bold = False
        .Execute

        Do While .Found
            Selection.Text = Selection.Text + vbCrLf
            .Execute 
        Loop

    End With
End Sub

Ссылка Microsoft на VBA была моим самым большим ресурсом, чтобы сделать это: https://docs.microsoft.com/en-us/office/vba/api/overview/word

...