vba - 如何在 Word VBA 中搜索文本、选择它所在的行并加粗?
问题描述
我创建了一个 word VBA 系统,它从 excel 电子表格中获取信息并创建一个 word 文档。每次的文档都是一份工作提案,因此通常至少有 1 行,通常是多行有小计:
小计 $1,000.00
我想编写一段代码(以适合按钮),在文档中找到“Sub-Total”,选择整行并将其设为粗体。它将始终位于 1 行,并且该行将始终以“Sub-Total”开头。
我尝试查找文本,但美元金额会随着任何新数据的导入而变化;只有“小计”这个词本身是静态的。任何帮助表示赞赏。谢谢!
解决方案
请注意,最好的做法是包含一个最小的、可行的代码示例,该示例显示了您在询问 stackoverflow 问题时所尝试的内容。
第一个问题是,如果您从 Excel 生成 Word 文档,为什么不在创建 Word 文档时格式化“小计”行(?);它可能比之后尝试查找和格式化文本更容易。
但是,假设由于某种原因你不能,这里有一个工作示例,它打开一个 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
推荐阅读
- jenkins - Jenkins 声明性管道 @tmp 文件夹
- javascript - 按 json 键值对列表进行分组并创建一个新列表 javascript
- ruby-on-rails - Rails 6.0 最佳实践中的 secret_key_base
- python - 为什么 venv 包含旧版本的 pip (9.0.3)?
- azure - 使用 Azure CLI 为应用程序见解设置数据保留
- c# - DynamoDB 查询包含一个列表参数
- reactjs - 无法使用 @testing-library/user-event 用新值更新文本区域
- xamarin - Xamarin Forms 不能两次安装相同的应用程序(使用不同的包名称)
- excel - 下载一个特定股票的历史股票价格时 VBA 宏出错:MDB
- angular - 使用 Angular 9 Reactive Forms 为一个输入使用多种模式的方法