【问题标题】:how to modify and apply styles across the document for specific paragraphs?如何在文档中修改和应用特定段落的样式?
【发布时间】:2020-09-16 17:50:00
【问题描述】:

我有不同样式的 word 文档,如标题 1、标题 2、普通、正文等。我正在尝试编写一个 VBA 宏,它将首先根据要求修改样式,然后相应地在整个文档中应用这些样式。见下文,我首先更改 style=normal 和 heding1 的字体大小,然后想将其应用于已定义 style=normal 的所有段落。所以它会分别更新现有标题1和法线的样式。

注意:我只想用样式来做。我可以使用 for 循环来逐个遍历每个段落,然后找到该段落的样式,然后相应地应用样式,如果我这样做,它工作得很好,但在我的文档中,我有 60000 个段落和所以需要很长时间,比如 10 个小时。所以,我正在寻找一种方法来一次完成每种不同的风格。请让我知道是否有任何方法可以做到这一点。

ActiveDocument.Styles(wdStyleNormal).Font.Name = "Arial"
ActiveDocument.Styles(wdStyleNormal).Font.Size = 12

ActiveDocument.Styles(wdStyleHeading1).Font.Name = "Arial"
ActiveDocument.Styles(wdStyleHeading1).Font.Size = 20

ActiveDocument.UpdateStyles

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我已经尝试过并最终得到了这个解决方案。我希望它对你有用。

    Sub ChangeStyle()
        With ActiveDocument.Styles("wdStyleNormal").Font
            .Color = wdColorAqua 'wdColorRed
            .Name = "Arial"
            .Size = 12
        End With
        With ActiveDocument.Styles("wdStyleNormal")
            .AutomaticallyUpdate = True
        End With
    End Sub
    

    【讨论】:

    • 嗨,谢谢分享。我认为 wdStyleNormal 不应该在您的代码中的引号内。现在来到主要问题。我之前尝试过这段代码。但问题是让我们在一个段落中说你有两种不同的字体大小。那么它不会同时改变 12 的字体大小。只需在 word doc 的单个段落中使用两种不同的字体大小并运行它。你会看到的。
    • 我认为解决方案是使用 ActiveDocument.Range.Font.Reset 将所有字体重置为其中一种样式。在它应该工作之后。
    • 不同样式如何分别选择范围?
    猜你喜欢
    • 2016-07-09
    • 1970-01-01
    • 2018-01-24
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多