我正在處理一個宏,它將查找文本模式並應用樣式。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