如何搜索文本,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
我创建了一个 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