VBA清除所选段落的格式

3

我遇到了很多问题,需要处理这个宏:

 ActiveDocument.CopyStylesFromTemplate NormalTemplate.FullName
    With Selection
        .Style = ActiveDocument.Styles("Normal")
        .Range.HighlightColorIndex = 0
        .Font.Shading.Texture = wdTextureNone
        .Font.Name = ActiveDocument.Styles("Normal").Font.Name
        .Font.Size = ActiveDocument.Styles("Normal").Font.Size
    End With

它适用于以下行的完美格式化: 此文本应该没有加粗或者斜体
并将其转换为: 此文本应该没有加粗或者斜体。
但是,只有当我选择到最后一个字符之前并运行它时,它才能正常工作。当我双击该行或手动选择整个行并运行宏时,似乎没有任何效果。 任何想法是什么可能导致这种情况?或者是否有一种不同的方法,我应该使用删除选择内的粗体/斜体文本并将所有文本转换为普通样式/字体?
编辑:这可能与使用快捷键运行宏有关,因为当通过宏菜单手动运行时可以正常工作。
2个回答

3
如果你想清除所有格式,我建议你这样做:
With Selection
    .ClearFormatting
End With

这将重置段落样式为“普通”,并重置所有字体和属性(我尝试设置的)。请注意,它会重置包含所选内容的段落的段落样式(因此,如果您只选择了段落中的一个单词,则仍会重置该段落的样式)。
参考:MSDN:Selection.ClearFormatting 当我添加 ActiveDocument.CopyStylesFromTemplate NormalTemplate.FullName 时,我没有看到任何区别,但我预计这将取决于您文档的复杂性。

这个程序手动通过宏菜单运行时可以正常工作。但是通过键盘快捷键运行时,它出现了和原始宏相同的问题。这真的很奇怪,因为我的其他宏从键盘上都可以正常运行。 - pavja2
没关系 - 真正的问题仅仅是在我之前编写模板的人错误命名了一个宏,导致我编辑了错误的宏。感谢您的快速回复。 - pavja2
您也可以在此应用“默认段落字体”样式;这只会影响所选文本(但不会将段落样式重置为普通)。 - Christina

0
原来问题是由我使用的模板的前任开发人员文档不完善所导致的 - 我只是在编辑错误的宏,因此尽管我的修复没有显示任何内容,但却从一个有缺陷的宏中得到了部分正确的结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接