我想找到并可能突出显示.doc或docx文档中包含一个或多个关键字的所有段落。
我从这个正则表达式开始(使用MS Word的带有通配符的查找),它只查找所有段落:
([^13^l]){1}*(^13){1}
这在我的文件中很有效,即从段落到段落。然后,我尝试将*
替换为一个可能的搜索字词*sust*
,如下所示:
([^13^l]){1}*sust*(^13){1}
然而,这突出了段落末尾的许多段落,其中包括*sust*
。我发现这很奇怪,因为第一次尝试只是逐段解析文档,即使在我第二次尝试返回的部分中也是如此。
我也试过了
([^13^l]){1}(*sust*)(^13){1}
以及([^13^l]){1} (*sust*) (^13){1}
都会突出显示很多段落,而不只是一段。
我在这里做错了什么?
答案 0 :(得分:2)
我一直在寻找相同的解决方案,并认为我会分享对我有用的东西。进入Word文档的VBA端(Alt + F11),插入新模块,粘贴此代码,找到引号并输入您想要的任何关键词,点击RUN箭头并观察它突出显示所有段落包含那个关键词。我对它如何帮助我感到非常满意!希望它也能帮助你和其他人!
Sub Highlight_Paragraph()
'THIS CODE HIGHLIGHTS TO THE END OF THE PARAGRAPH WHERE THE TARGET WORD
'IS FOUND WITHIN THE DOCUMENT
Dim oRng As Range
Set oRng = ActiveDocument.Range
With oRng.Find
Do While .Execute(FindText:="Contractor Shall")
oRng.Paragraphs(1).Range.HighlightColorIndex = wdYellow
oRng.Collapse 0
Loop
End With
lbl_Exit:
Set oRng = Nothing
Exit Sub
End Sub
答案 1 :(得分:0)
你必须一步到位吗?我会这样做:1)找到这个词。 2)选择段落。 3)突出显示文字。 4)根据需要重复。 (使用简单的宏。)
答案 2 :(得分:0)
你需要5"正则表达式"搜索以查找正常 paragraphes中的所有可能事件。
这会抓住关键字 内的每个段落:
[^11-^13]{1}([!^11-^13]@sust[!^11-^13]@[^11-^13]{1})
... 关键字是段落中的第一个字词:
[^11-^13]{1}(sust[!^11-^13]@[^11-^13]{1})
... 关键字是段落中的最后一个字词:
[^11-^13]{1}([!^11-^13]@sust[^11-^13]{1})
...在文档的第一段中使用关键字(它会捕获更多):
([!^11-^13]@sust[!^11-^13]@[^11-^13]{1})
... 关键字是文档中的第一个字(或者只是自己检查,它也会吸引更多):
(sust[!^11-^13]@[^11-^13]{1})
根据documentation,案例1-3可能有效:
[^11-^13]{1}([!^11-^13]{0,}sust[!^11-^13]{0,}[^11-^13]{1})
但是(对于Word 2010)它没有。