Как начать и остановить выделение текста с помощью HighlightColorIndex VBA - PullRequest
0 голосов
/ 31 января 2012

Я извлекаю текст из другого приложения и создаю документ MS-Word на лету.

Иногда могут быть какие-то выделения нужных слов, которые я выполняю, когда нахожу их. Что я не могу понять, так это как перестать отображать HighlightColorIndex.

Я пробовал Selection.Collapse, Selection.Range.Collapse и Selection.Range.HighlightColorIndex = wdNoHighlight все до ограниченного успеха. Можете ли вы помочь, пожалуйста?

Dim lngRangeStart As Long
Dim lngRangeEnd As Long
Selection.TypeText Text:="Test of colour" ' No highlighting at present
Selection.TypeParagraph                   ' 
Selection.TypeText Text:="Starting colour after colon: " ' No highlighting at present

lngRangeStart = Selection.Start   ' set to the start of the Range

Selection.Range.StartOf
Selection.TypeText Text:="This text is highlighted"

lngRangeEnd = Selection.Start ' set to the end of the Range and sel.start appears correct

Selection.SetRange Start:=lngRangeStart, End:=lngRangeEnd ' sets range correctly
Selection.Range.HighlightColorIndex = wdYellow

' >>> This is where I need to cease highlighting but what to do?
{funky code to stop highlighting here}
Selection.TypeText Text:="Now back to clear text"

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Вам нужно выбрать текст, как вы делали раньше, и сбросить его подсветку на ноль wdNoHighlight

Используйте код ниже

' >>> This is where I need to cease highlighting but what to do?
'{funky code to stop highlighting here}
Selection.Move WdUnits.wdCharacter, 1
''Clear for text
lngRangeStart = Selection.Start
Selection.TypeText text:="Now back to clear text"
lngRangeEnd = Selection.Start
Selection.SetRange Start:=lngRangeStart, End:=lngRangeEnd ' sets range correctly
Selection.Range.HighlightColorIndex = wdNoHighlight

Selection.Move WdUnits.wdCharacter, 1
Selection.TypeText text:="Now back to the future text"
0 голосов
/ 31 января 2012

Если я правильно понимаю ваш вопрос, то вы просто устанавливаете цвет выделения на wdColorAutomatic, который является константой, определяющей автоматический (по умолчанию) цвет.

Итак, все вместе, чтобы выделить текст, вы бы установили его фон на wdColorYellow. Чтобы убрать выделение, вы должны установить его фон wdColorAutomatic.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...