无法使用VBA更改Word中的样式

时间:2017-12-08 04:52:09

标签: vba ms-word word-vba

我有一个这样的段落:

  

2014年11月19日 - 您正在对选择进行搜索,但您确实如此   不改变运行之间的选择。所以你最终会成功   同样的文字一遍又一遍地大胆。这是一种做你自己的方法   没有Selection对象:Sub ParaStyle()Dim objPara As   每个objPara的段落... Word VBA段落   格式化-VBForums

我正在尝试将整个段落的样式更改为本地样式。我使用以下代码:

Dim rgePages As Range
Dim p As Paragraph

Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=3
Set rgePages = Selection.Range
Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=6
rgePages.End = Selection.Bookmarks("\Page").Range.End
rgePages.Select

For Each p In rgePages.Paragraphs
If p.Style <> "Heading 1" Then

p.Style = "Body Text"
'p.Style = Word.WdBuiltinStyle.wdStyleBodyText
rgePages.Collapse Word.WdCollapseDirection.wdCollapseEnd

End If
Next

直到任何一行或几个单词处于不同风格的时候它才能正常工作。比如说行

  

所以你最终要制作

段落中的

是不同的样式,它将整个段落标记为“正文”,但该部分除外。有解决方案吗?

1 个答案:

答案 0 :(得分:1)

在应用自己的样式之前,您可以先尝试清除格式。它可以这样:

....
If p.Style <> "Heading 1" Then

    p.Range.Select 
    Selection.ClearFormatting 'it rather works with selection only

p.Style = "Body Text"
....