如何搜索文本,select 所在行,并在 Word VBA 中将其加粗?

How can I search for text, select the line it's on, and bold it in Word VBA?

我创建了一个 word VBA 系统,它从 excel 电子表格中获取信息并创建一个 word 文档。每次文档都是一份工作建议,因此通常至少有 1 行,通常是多行,其中包含小计:

小计 $1,000.00

我想写一段代码(适合一个按钮)在文档中找到“小计”,选择整行,并将其加粗。 它将始终在 1 行上,并且该行始终以“小计”开头。

我尝试查找文本,但美元金额会随着任何新数据导入而变化;只有“小计”这个词本身是静态的。任何帮助表示赞赏。谢谢!

请注意,最好包含一个最小的、可行的代码示例,该示例显示您在提出 Whosebug 问题时尝试过的内容。

第一个问题是,如果您从 Excel 生成 Word 文档,为什么不在创建 Word 文档时格式化“Sub-Total”行(?);这可能比之后尝试查找和格式化文本更容易。

但是,假设您出于某种原因不能,这里有一个工作示例,它打开一个 Word 文档,遍历所有句子,检查句子是否以“Sub-Total”开头,如果是, 使其变为粗体。它假定文本(例如“Sub-Total $1500.00”)是一个完整的句子,并且整个句子需要加粗。

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