2015-09-29 2 views
1

Я кодирую программу, которая меняет формат списка слов при написании в 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 для жирного шрифта и т. Д.

P.D. Я тестирую его в Word 2003 и 2007, но я хочу быть как можно более обширным в совместимости.

Я кодирую в VB.NET, но это не имеет значения, потому что, если вы знаете способ сделать это в vba, я буду адаптировать код.

+0

Это звучит как слово выполняет его поведение по умолчанию --- если длина выбора равна нулю, то форматировать следующий вставленный символ, как тот, который был до точки вставки. Я могу подумать о нескольких нечетких кломах: (1) иметь какой-то фиктивный текст в конце find/replace никогда не действует на последнем слове, (2) после поиска/замены, установите выделение в окончательный (возможно, невидимый) абзац отметка. – xidgel

ответ

1

После замены текста, попробуйте выбрать диапазон, а затем снова установить курсивный до 0

+0

Спасибо. Я получил это изменение шрифта текущего выбора. Я сделал это так: CurrentWordApplication.ActiveDocument.ActiveWindow.Selection.Font.Italic = 0 –

+1

Если у вас есть дополнительные вопросы .. я постараюсь помочь. В настоящее время работает над подобными задачами –

Смежные вопросы