看起来您的样式“正文,bt”是纯段落样式。这意味着它只会应用于完整的段落。
但是,在您的屏幕截图中,仅选择了第二段的一部分。确保选择了整个段落,或者,如果样式只应用于段落的一部分,则将您的样式“正文文本,bt”设置为链接(段落和字符)样式。
对不连续选择的编程访问非常有限,并且只能使用 Word UI 创建此类选择。MSDN 文章对 Word 不连续选择的有限编程访问提供了更多详细信息。
如果仅将样式应用于段落的一部分(通过使其成为链接样式)不是您想要的,您可能必须想出这样的技巧:
Sub BodyTextApply()
Dim oRange As Range
' create a temporary character style
ActiveDocument.Styles.Add "_TEMP_STYLE_", wdStyleTypeCharacter
' apply the temporary style to the discontiguous selection
Selection.Style = ActiveDocument.Styles("_TEMP_STYLE_")
Set oRange = ActiveDocument.Range
With oRange.Find
.ClearAllFuzzyOptions
.ClearFormatting
.ClearHitHighlight
.Style = ActiveDocument.Styles("_TEMP_STYLE_")
.Text = ""
.Wrap = wdFindStop
' search for all occurences of the temporary style and format the
' complete paraphraph with the desired style
Do While .Execute
oRange.Paragraphs(1).Style = ActiveDocument.Styles("Body Text,bt")
Loop
End With
' cleanup
ActiveDocument.Styles("_TEMP_STYLE_").Delete
End Sub
您可能还想添加一些错误处理,以确保最终从文档中删除使用的临时样式。