【发布时间】:2020-11-25 18:51:48
【问题描述】:
我需要在大型文档中执行查找,以修复“标题 1”标题从大写到标题大小写的情况。我写了以下代码来演示目的(包括一些丑陋的步骤来帮助调试):
Sub FixHeadings()
Dim doc As Word.Document
Dim rng As Word.Range
Set doc = ActiveDocument
Set rng = doc.Content
With rng.Find
.Format = True
.Style = doc.Styles("Heading 1").NameLocal
.Forward = True
Do While .Execute
rng.Case = wdTitleWord
rng.Style = doc.Styles("Heading 1").NameLocal
resp = MsgBox(rng.Text & vbNewLine & vbNewLine & "Text was found, continue?", vbQuestion & vbYesNoCancel)
If resp = vbNo Then
Exit Do
ElseIf resp = vbCancel Then
foo = True
End If
Loop
End With
End Sub
我遇到的问题:如果表格紧跟标题,则查找卡在当前标题上,无法继续前进。在我添加调试行之前,这会使 Word 挂起。
代码在表格不跟随标题的文本上工作正常。但是,我不控制文档的格式,也不能假设会包含空白段落。我确实发现确实有帮助,但我不能再次假设这一点。
我会使用 Find All 和 Replacement 属性,但它不支持 Case。此外,我尝试使用 Goto 将指针微移到 Heading 之外,但无济于事。
可以做什么?这是一个错误吗?我应该检测下一个表是否是下一个并以某种方式采取行动吗?如果是,应该采取什么行动?
【问题讨论】: