Когда я выполняю следующий код:
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
a la:
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