【发布时间】:2018-06-22 15:28:53
【问题描述】:
我想开发一个程序,当按下右箭头或左箭头时,当前单词会突出显示。因此,当我使用箭头键向左或向右移动时,光标所在的单词会突出显示。其中一部分我能够利用以下信息进行开发 highlight current line of word document when move up or down
对于我目前拥有的右箭头:
Sub SelectWordRight()
Application.ScreenUpdating = False
ActiveDocument.Content.HighlightColorIndex = wdNoHighlight
Selection.MoveStart wdWord, 1
Application.Selection.Words(1).Select
Selection.Range.HighlightColorIndex = wdYellow
'Unselect the line
Application.Selection.Collapse wdCollapseStart
Application.ScreenUpdating = True
End Sub
左箭头
Sub SelectWordLeft()
Application.ScreenUpdating = False
ActiveDocument.Content.HighlightColorIndex = wdNoHighlight
Selection.MoveEnd wdWord, -1
Application.Selection.Words(1).Select
Selection.Range.HighlightColorIndex = wdYellow
'Unselect the line
Application.Selection.StartOf
Application.ScreenUpdating = True
End Sub
效果很好。但是当有像左括号和右括号这样的边界字符的单词时,它只会突出显示括号。
例如考虑这个 - 我喜欢这个网站(stackoverflow)
当我按下其中一个箭头时,它适用于其他词。但是当涉及到 (stackoverflow) 时,它会分别突出显示 (, stackoverflow 和 )。那么有没有办法突出显示以空格分隔的单词?
在 Cindy 的回答的帮助下,我能够为这样的左箭头开发解决方案。
Sub SelectWordLeft()
Application.ScreenUpdating = False
ActiveDocument.Content.HighlightColorIndex = wdNoHighlight
Selection.MoveEnd wdWord, -1
Selection.MoveStartUntil " ", wdBackward
Selection.MoveEndUntil " ", wdForward
Selection.Range.HighlightColorIndex = wdYellow
'Unselect the line
Application.Selection.StartOf
Application.ScreenUpdating = True
End Sub
但我仍然无法弄清楚如何将其转换为在右箭头中使用。当有 - : ) ( { }
之类的字符时,它会失败【问题讨论】:
-
这是一个有趣的问题。请注意,您修改后的
SelectWordLeft不适用于“Stackoverflow.com 是一个很棒的网站”之类的内容。 - 即当文本以“复杂”单词开头并且没有前面的空格时 - 但可能是一个小细节。我只是想看看最佳解决方案。