使用 vba 插入样式分隔符时删除空白

使用 vba 插入样式分隔符时删除空白

大家好,抱歉我的英语不好:我有一个宏可以添加样式分隔符,它工作正常,只是在段落前面添加了一个空格。我该如何修改这个宏,让它不添加它,或者如果它添加了它,稍后会将其删除?

Sub SeparadordeEstilos()
 With Selection
            .InsertBefore vbCr
            .InsertStyleSeparator
            .Paragraphs(1).Range.Font.Reset
            .Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub

編輯:

非常感谢你,Charles,我向大家道歉,因为我没有解释所有的细节。我需要在大纲多级列表中使用两种具有相同编号的段落。一些段落使用粗体字体样式,出现在目录中,而另一些段落使用普通字体,不会出现在目录中。因此,我创建了两种样式,PLL 层 2目录中出现的粗体字样PLL 等级 2 notdc,不带粗体,在执行我在问题中描述的宏时,它不会出现在使用样式分隔符自动应用的目录中。这是我发现的唯一解决方案,特别是因为连续编号的要求。

除了空白处,其他一切都很好。文档中的空白处很糟糕,它没有给文档带来专业的感觉,相反,它给人一种邋遢的感觉。

因此我需要一种替代方案或能够删除空白。

截屏

这里有一个样本文件问题。我认为连续编号工作正常,因为我在启用“显示全部”时看到了它,但如果我将其关闭(显示全部),它也不会工作并设置不同的编号。

编辑2

显示新图片

答案1

您希望在两个段落之间留出一些空间,就像空格字符一样!

你的代码在段落末尾的段落标记之前运行时,会添加一个样式分隔符以及一个具有新风格的空间。

当省略.insertBefore vbCr该行时,正如所建议的那样雷迪,并且它在段落末尾运行,它会添加样式分隔符和空格,删除当前段落标记并以新样式显示下一个段落,以便它看起来像使用两种段落样式的单个段落。

可能需要空格来应用样式。在第二种情况下,确实有必要将第一段文本与第二段文本实际分开。

您确实要消除该空间吗?

这是您修改后的宏:

Sub InsertStyleSeparator()
' Use at end of paragraph just before paragraph mark.
    With Selection
        '            .InsertBefore vbCr
        .InsertStyleSeparator
        .Paragraphs(1).range.Font.Reset
        .Paragraphs(1).Style = ("PLL Nivel 2 notdc")
    End With
End Sub

请注意我添加的评论:将其放在段落末尾,而不是开头。

这是你的样本文件,使用宏。

与样式分隔符一起使用时,添加到段落的部分没有自己的编号。它在视觉上充当被样式分隔符分隔的段落的一部分。

答案2

vbCr是新行。此行代码.InsertBefore vbCr会在您的样式前插入新行。删除它以避免段落前出现空白。

相关内容