【问题标题】:VBA Word - changing the heading makes it loosing its styleVBA Word - 更改标题使其失去风格
【发布时间】:2016-01-10 02:18:18
【问题描述】:

这里有很多问题询问如何获取所有标题,但显然没有人尝试更改标题...

我想将一些二级标题从 Old Heading 更改为 New Heading,所以我这样做了...

Sub changeHeading()
    Dim p As Paragraph
    For Each p In ActiveDocument.Paragraphs
        If p.Style = "Heading 2" Then _
            If p.Range.Text = "Old Heading" & vbCr Then p.Range.Text = "New Heading" & vbCr
    Next p
End Sub

标题获得了新名称,但它们也获得了不同的样式 - 它们获得下一段的样式 - 即,如果标题后面的文本具有样式 表格文本,则标题将具有样式表格文本之后(字体大小将保持旧标题的大小),章节编号丢失。如果我将样式设置回p.Style = "Heading 2",这将使该标题(即下一段)之后的第一个文本具有Heading 2 样式,尽管它仍然是同一段p(更改了文本,但在文件)。

之前的情况:

1.4 Old Heading
some text

更改标题并设置样式后

New Heading
1.4 some text    

其中some text 的样式为Heading 2New Heading 的字体大小与标题相同,但没有编号。

第二个问题,它花费了令人难以置信的时间(对于只有几段的小文档来说需要几秒钟)。

那么,如何更改标题?以及如何以一种不需要几分钟处理大文件的方式来做到这一点?感谢您的帮助。

编辑:

我发现用

改变文字
Call p.Range.Find.Execute(FindText:="Old Heading", ReplaceWith:="New Heading")

将保留样式,因此这将解决我最初更改文本的问题,但我仍然想知道为什么设置段落文本会使其失去样式。

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    样式发生变化的原因是您覆盖了段落标记 (vbCr)。段落级格式直接与段落字符相关联。当您删除它,然后在下一段的开头插入另一个时,新段落将采用它起源的段落的格式。

    顺便说一句,使用 Range.Find 和 Replace 可能比循环段落集合更有效。 Word 的查找功能还可以搜索格式。因此,您可以使用单个 Find 操作来定位 Heading 2 样式和特定文本(不带段落标记)。然后使用 Replace 来编写新文本。

    在 Word UI 中测试,然后录制宏以获取基本语法。

    【讨论】:

    • 好吧,有点奇怪,但我明白其中的逻辑。所以这个:Selection.Find.ClearFormatting(如果之前设置了一些不同的东西是必要的?)With Selection.Find.Style = ActiveDocument.Styles("Heading 2").Text = "Old Heading".Replacement.Text = "New Heading".Replacement.Text = "New Heading"End WithSelection.Find.Execute Replace:=wdReplaceAll几乎是完美的,但也会改变旧标题有保持不变 新标题必须保持不变 - 我无法看到如何将vbCr 放入文本(或段落结尾标记)
    • 好的,我知道你的问题了,现在。是的,你已经掌握了原理。更多,然后是特殊按钮将为您提供搜索/替换段落标记的选项,但如前所述,您不能这样做并保留格式。因此,您需要学习如何使用 WILDCARD 功能。评论中没有详细讨论的空间,但互联网上有很多讨论。您可以使用它将搜索词分解为“表达式”,然后选择重新使用原始词。例如: FindText = "Test(^13)" and ReplaceText = "X\1" 用 X 和原来的 vbCr 替换 Test。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2021-05-03
    相关资源
    最近更新 更多