【问题标题】:Cannot change style in Word using VBA无法使用 VBA 在 Word 中更改样式
【发布时间】:2017-12-08 04:52:08
【问题描述】:

我有这样一段:

2014 年 11 月 19 日 - 您正在对 Selection 进行搜索,但您正在 不改变运行之间的选择。所以你最终会做 同样的文字一遍又一遍地加粗。这是做你想做的事的方法 不使用 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

在任何一行或几个单词的风格不同之前,它都可以正常工作。比如说如果这条线

所以你最终会做

段落中的样式不同,它将整个段落标记为“正文”,除了该部分。有解决办法吗?

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    您可以先尝试清除格式,然后再应用自己的样式。可以这样:

    ....
    If p.Style <> "Heading 1" Then
    
        p.Range.Select 
        Selection.ClearFormatting 'it rather works with selection only
    
    p.Style = "Body Text"
    ....
    

    【讨论】:

    • 这太有帮助了!我已经尝试了几个小时,现在试图搜索网络。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多