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

它与以下行完美配合:此文本的格式应不带粗体或斜体。

并将其转换为" 此文本的格式应为不带粗体或斜体的格式。

但是,它只有在我选择最后一个字符之前的右侧并运行它时才有效。当我双击该行或手动选择整行并运行宏时,它似乎根本没有效果。

有什么想法可能导致这种情况,或者我应该使用不同的方法来删除选择中的粗体/斜体文本并将所有文本转换为普通样式/字体?

编辑:这可能与从键盘快捷键运行宏有关,因为它在通过宏菜单手动运行时工作正常。

4

2 回答 2

3

如果您想清除所有格式,我建议这样做:

With Selection
    .ClearFormatting
End With

这会将段落样式重置为 Normal 并重置所有字体和属性(我尝试设置)。请注意,它会重置包含所选内容的段落的段落样式(因此,如果您仅在段落中选择了一个单词,它仍会重置段落的样式)。

参考:MSDN:Selection.ClearFormatting

添加时我没有看到任何区别, ActiveDocument.CopyStylesFromTemplate NormalTemplate.FullName但我希望这取决于您文档的复杂性。

于 2013-06-23T00:49:46.253 回答
0

事实证明,问题是我使用的模板的前一个开发人员的文档很差——我只是编辑了错误的宏,因此尽管我的修复没有显示任何内容,但从有缺陷的宏中得到了部分正确的结果。

于 2013-06-23T02:39:10.453 回答