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