English 中文(简体)
将Word的光标类型(或更多的文本插入)在将文本斜体后变成非斜体。
原标题:
  • 时间:2008-11-25 20:21:13
  •  标签:

当我执行以下代码时:

Dim italicSaveRange As Word.Range
Dim savedItalic As Variant
Dim someRange As Word.Range

Set italicSaveRange = someRange.Duplicate
italicSaveRange.Collapse (WdCollapseEnd)
savedItalic = italicSaveRange.Italic
someRange.Italic = True
italicSaveRange.Italic = savedItalic

我期望在光标处输入或插入到someRange的任何文本,如下:

someRange.InsertAfter "Lorem ipsum..."

不应该是斜体的(当然,假设此位置之前的格式并非为斜体)但现在却是。救命。


根据您的建议,我现在有了以下解决方案,似乎正在工作。 这可能是一个脆弱的解决方案,取决于在此期间移动的内容(例如,尝试在Word中键入一些斜体文本,按Ctrl + i准备使用非斜体,但然后将光标向左移入斜体,然后向右移出; 光标正在插入斜体文本...),但对我的目的来说,在其他地方添加文本(但在代码的不同级别,因此我无法在这个级别访问要插入的文本)这可能有效。 谢谢。

Set italicSaveRange = someRange.Duplicate
italicSaveRange.Collapse (WdCollapseEnd)
savedItalic = italicSaveRange.Italic
someRange.Italic = True
italicSaveRange.InsertAfter SP
italicSaveRange.Characters(1).Italic = savedItalic
italicSaveRange.Characters(1).Delete
最佳回答

当您将文本插入到Word Range对象中时,此文本将始终(据我所知)继承前一个文本运行的格式。

为了解决这个问题,您应该在插入文本后应用格式。

Dim italicSaveRange As Word.Range
Dim savedItalic As Variant
Dim someRange As Word.Range

Set italicSaveRange = someRange.Duplicate
italicSaveRange.Collapse (WdCollapseEnd)
savedItalic = italicSaveRange.Italic
someRange.Italic = True
italicSaveRange.Text = "Lorem ipsum..."
italicSaveRange.Italic = savedItalic

如果您必须稍后插入文本,则可能需要插入一些虚拟文本,稍后再替换它们。

问题回答

暂无回答




相关问题
热门标签