【问题标题】:How can I search for text, select the line it's on, and bold it in Word VBA?如何在 Word VBA 中搜索文本、选择它所在的行并将其加粗?
【发布时间】:2020-08-07 02:06:56
【问题描述】:

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

小计 $1,000.00

我想编写一段代码(以适合按钮),在文档中找到“Sub-Total”,选择整行并将其设为粗体。它将始终是在 1 行上,该行将始终以“Sub-Total”开头。

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

【问题讨论】:

    标签: vba button ms-word bold


    【解决方案1】:

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

    第一个问题是,如果您从 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
    

    【讨论】:

    • 请注意,我将在未来将其包括在内。这是我正在寻找的代码。非常感谢您的帮助!
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    相关资源
    最近更新 更多