|
想用查找的方法锚定指定字符所在的自然段,然后改变字体和颜色并高亮显示。
下面用了三个方法:
方法一:word查找法,出现死循环,没有结果。
方法二:word查找法,能改变字体和颜色,要求高亮部分没有实现,反而将没有要求的部分高亮显示了。
方法三:循环自然段段落法,能全面实现效果,但不是我想要的。
请问:能否修改方法一和方法二实现我的要求。
代码如下:
'第一种方法死循环,没有结果。
Sub 查找并高亮显示1()
With ActiveDocument.Content.Find
Do While .Execute("[!^13\]]@\|[!^13]{1,}", , , 1)
With .Parent
With .Font
.Name = "Arial Black"
.NameFarEast = "方正粗黑宋简体"
.Underline = wdUnderlineNone
.Bold = Brue
.ColorIndex = 7
.Size = 10.5
End With
.HighlightColorIndex = wdDarkBlue
.Collapse 0
End With
Loop
End With
End Sub
'第二种方法能改变字体和颜色,要求高亮部分没有实现,反而将没有要求的部分高亮显示了。
Sub 查找并高亮显示2()
With ActiveDocument.Content.Find
With .Replacement
.Font.Name = "Arial Black"
.Font.NameFarEast = "方正粗黑宋简体"
.Font.Size = 10.5
.Font.ColorIndex = 7
.Font.Bold = 0
End With
.Parent.HighlightColorIndex = wdDarkBlue
.Execute "[!^13\]]@\|[!^13]{1,}", , , 1, , , , , , "^&", 2
End With
End Sub
Sub 查找并高亮显示3() '可以实现,但不是我想要的。
Dim par As Paragraph
With ActiveDocument
For Each par In .Paragraphs
If InStr(par.Range.Text, "|") > 0 Then
With par.Range
.Font.Name = "Arial Black"
.Font.NameFarEast = "方正粗黑宋简体"
.Font.Size = 10.5
.Font.ColorIndex = 7
.HighlightColorIndex = wdDarkBlue
End With
End If
Next
End With
End Sub
盼大侠指导,先谢了。
附件如下:
|
|