我想在最后一个单词中删除粗体/斜体/下划线格式以继续正常写入

时间:2015-09-29 14:00:36

标签: vba ms-word ms-office word-vba office-interop

我正在编写一个程序,用于在Ms-Word中编写时更改单词列表的格式。

我正在使用Range.Find.Execute查找我想要修改的文本,然后修改范围(例如斜体)

myRange.Find.Execute(FindText:="inicialText", ReplaceWith:="newTextInItalics")
myRange.Italic = 1

一切都很好,除非我改变这个词是最后一个词。然后,样式保留在Ms-Word中。因此,如果您继续键入,插入的新文本将以斜体显​​示,我不希望如此。

我还尝试折叠范围并删除斜体:

myRange.Collapse(WdCollapseDirection.wdCollapseEnd)
myRange.Italic = 0

但这也不起作用!

我能想到的唯一可能的解决方法是模拟热键切换粗体(Ctrl + B)/斜体(Ctrl + I)/下划线(Ctrl + U),但它有很多不便,例如它取决于语言。用西班牙语Ctrl + N表示粗体等

Pd积。 我正在使用Word 2003和2007进行测试,但我希望尽可能扩展兼容性。

我在VB.NET中编码,但没关系,因为如果你知道在vba中这样做的话,我会调整代码。

1 个答案:

答案 0 :(得分:1)

更换文本后,尝试再次选择范围,然后将斜体设置为0