Word具有非常强大的功能,可让您搜索太阳下几乎所有的东西。但是,您无法搜索的一件事就是段落的边框。例如,如果您想查找所有打开了左边框的段落,则不能这样做。但是,有两种方法可以解决此问题。

第一种解决方法是仅使用样式设置段落格式。

如果您使用一种样式,并且该样式要求段落的左侧边框,则可以使用该样式轻松地搜索段落。

(_WordTips._的其他问题完全涵盖了搜索样式的方式。)

第二种可能的解决方法是使用宏进行搜索。

使用宏,您可以轻松查看是否为段落设置了边框属性。下面的宏逐步介绍了文档中的每个段落。当找到具有任何边框属性设置的段落时,该段落被选中,并且宏停止。

Sub SearchForBorders1()

Dim k As Word.Paragraph     Dim bFound As Boolean

For Each k In ActiveDocument.Paragraphs         bFound = False         If k.Borders(wdBorderTop).LineStyle <> wdLineStyleNone _           Then bFound = True         If k.Borders(wdBorderLeft).LineStyle <> wdLineStyleNone _           Then bFound = True         If k.Borders(wdBorderBottom).LineStyle <> wdLineStyleNone _           Then bFound = True         If k.Borders(wdBorderRight).LineStyle <> wdLineStyleNone _           Then bFound = True

If bFound Then             k.Range.Select             Exit Sub         End If     Next k End Sub

如果您没有很多带边框的段落,则此宏非常方便。为什么?因为宏总是从文档的开头开始搜索,因此只能找到带有边框的第一段。

可以使用一种不同的宏方法来搜索除插入点所在的段落以外的段落中的边框。下面的宏就是这样做的-它在当前段落之后开始搜索,并在到达设置了任何边框属性的段落时停止。请注意,此宏不会选择整个段落;只需将插入点移动到具有边框的段落即可。

Sub SearchForBorders2()

Static a As Long, l As Long     Dim b As Boolean     Dim bd As Border     Dim bds As Borders     Dim prg As Paragraph     Dim prgs As Paragraphs     Dim re As Range     Dim se As Selection     Dim doc As Word.Document

Set se = Selection     Set re = se.Range     Set doc = ActiveDocument     If se.Start < l Then a = se.Start     With doc.Content         Set bds = .Borders         re.Start = a         re.End = .End     End With     For Each bd In bds         b = bd = True         If b Then Exit For     Next     If Not b Then Exit Sub

Set prgs = re.Paragraphs     For Each prg In prgs         Set re = prg.Range         If InStr(re.Text, Chr(13)) = 0 Then             re.End = re.End + 1         End If         Set bds = re.Borders         For Each bd In bds             b = bd = True             If b Then Exit For         Next         If b Then             a = re.Start             se.Start = re.Start             se.End = re.Start             a = re.End             l = se.Start             Exit Sub         End If     Next     a = 0     MsgBox "No more borders found"

End Sub

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(9833)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: