如何将标题粘贴到列表中而不改变列表的初始标题编号

问题描述 投票:0回答:1

[在我的测试中,将不属于编号列表的标题的文本复制并粘贴到确实具有编号列表的另一个Word文件中,导致单词自动将粘贴的标题集成为列表的新“元素”。这样,它会为每个标题创建其他编号(除了之前可能拥有的编号),并移动后续初始标题的编号。

复制文本:To be Copied Text粘贴前:Text before paste粘贴后:After paste有没有办法在保持此列表结构的同时不改变这些初始标题?

我确实想到了该方法:ConvertNumbersToText

这将阻止word自动为我列出该列表附近的所有内容。但是还有其他解决方案吗?我宁愿不使用它,因为我不知道如何重新打开“自动编号”。

[编辑1]:另一个可行的解决方案是使用以下恢复类型进行粘贴和格式化:wdFormatOriginalFormatting

但是,当我粘贴其中包含列表的标题时,此修复程序将失败。相反,在复制带有正文列表的标题时,正常粘贴(Selection.Paste)不会移动编号或为粘贴的列表创建任何新的编号。

vba ms-word word-vba
1个回答
1
投票
据我所知,没有办法复制可以修改的样式。但是可以创建基于另一种样式的新样式,然后将新样式修改为稍有不同(即删除编号)。

以下代码段

    声明并实例化两个Style对象:一个用于标题1样式,另一个用于新样式。
  1. 然后将新样式的[BaseStyle]属性设置为“标题1”样式,这意味着它将拾取所有基本样式的属性。
  2. 然后通过将其ListTemplate设置为Nothing将其与编号断开链接>
  3. 当我将其复制/粘贴到标题1编号的文档中时,该文本未编号,但是看起来相同。也可以在TOC中进行拾取(如果这是所需的行为,也可以将TOC修改为

    not

进行拾取)。Sub CopyStyleAndUnlinkNumbering() Dim sH1 As Word.style Dim sH1Copy As Word.style Set sH1 = ActiveDocument.styles(WdBuiltinStyle.wdStyleHeading1) Set sH1Copy = ActiveDocument.styles.Add("Heading 1 Copy", Word.WdStyleType.wdStyleTypeParagraph) sH1Copy.BaseStyle = sH1 sH1Copy.LinkToListTemplate ListTemplate:=Nothing End Sub
© www.soinside.com 2019 - 2024. All rights reserved.