Как я могу найти текст, выделить строку, в которой он находится, и выделить ее жирным шрифтом в Word VBA? - PullRequest
0 голосов
/ 07 августа 2020

Я создал систему Word VBA, которая берет информацию из таблиц Excel и создает текстовый документ. Каждый раз документ представляет собой предложение о вакансии, поэтому обычно есть как минимум 1, а часто и несколько строк с промежуточным итогом:

Промежуточный итог 1000,00 долларов

Я хочу написать фрагмент кода (который помещается в кнопку), который находит «Промежуточный итог» в документе, выделяет всю строку и выделяет ее жирным шрифтом. Он всегда будет на одной строке, и строка всегда будет начинаться с " Промежуточный итог ".

Я пытался работать с поиском текста, но сумма в долларах меняется при любом новом импорте данных; только само слово «Промежуточный итог» имеет значение stati c. Любая помощь приветствуется. Спасибо!

1 Ответ

1 голос
/ 07 августа 2020

Обратите внимание, что рекомендуется включать минимальный жизнеспособный образец кода, который показывает, что вы пробовали, когда задаете вопрос о переполнении стека.

Первый вопрос: генерируете ли вы Word документ из Excel, почему бы вам не отформатировать строку «Промежуточный итог» при создании документа Word (?); это, вероятно, проще, чем пытаться найти и отформатировать текст после этого. начинается с «Промежуточный итог», и если да, то выделяется жирным шрифтом. Предполагается, что текст (например, «Промежуточная сумма 1500 долларов США») является полным предложением, и все предложение должно быть выделено жирным шрифтом.

Option Explicit

Public Sub FindAndBold()

    Dim WordApp As Word.Application
    Dim MyWordDocument As Word.Document
    Dim Counter As Long
    
    Set WordApp = New Word.Application
    Set MyWordDocument = Word.Application.Documents.Open("C:\test.docx")
    For Counter = 1 To MyWordDocument.Sentences.Count
        With MyWordDocument.Sentences(Counter)
            If Left$(.Text, 11) = "Sub-Total: " Then
                .Bold = True
            End If
        End With
    Next
    
End Sub
...