我正在处理一个宏,它将查找文本模式并应用样式。MS Word宏 - 查找文本模式并应用样式
文档内容:
启动Style1Test HeadingEnd-Styles1Start - 蓝紫魅力 - 这是paragraph.End-Styles2
在这里,我的宏将搜索“启动STYLE1 *端值Style1“并应用style1。在我们的例子中,“测试标题”会应用style1。同样,它也会为style2做同样的事情。如果我的标题和上下文位于不同的行,我的宏工作正常。
但是,如果它是相同的行。只应用一种风格。深入探讨这个问题时,我发现这是因为这两种风格的Style类型都是'Paragraph'。
如果我将其更改为'Character'作为样式类型,我能够获得预期的输出。我想在不改变样式类型的情况下应用样式。如果可能,请让我知道。
这里是我的代码:
Application.ScreenUpdating = False
Dim RngStory As Range
Dim StrStart
Dim StrEnd
Dim Styles
StrStart = Array("Start-Style1", "Start-Style2")
StrEnd = Array("End-Style1", "End-Style2")
Styles = Array("Style1", "Style1")
For i = 0 To 1
Set RngStory = ActiveDocument.Range
With RngStory.Find
.ClearFormatting
.Text = StrStart(i) & "*" & StrEnd(i)
.Forward = True
'.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
.Replacement.Text = ""
Do While .Execute
With RngStory.Duplicate
.Start = .Start + Len(StrStart(i))
.End = .End - Len(StrEnd(i))
.Style = ActiveDocument.Styles(Styles(i))
.End = .End - Len(StrEnd(i))
.Collapse (wdCollapseEnd)
End With
Loop
End With
Next