我有一份 100 多页的 Word 文档,里面全是需要我纠正的突出显示的句子。一旦我纠正完毕,我必须删除突出显示。
如果所有突出显示都是相同颜色,则使用 Ctrl+Alt+H 快捷键可以轻松实现这一点。(Ctrl + Space d 会删除样式,但不会删除突出显示。)
但是我的有几种不同的颜色,所以每次我都必须在功能区中选择颜色,这使得快捷方式毫无用处。
有没有办法设置一个快捷方式(或简化程序)以便能够删除突出显示而不必将其设置在功能区中?
编辑1
该宏正在工作(RGB 位于循环末尾,并且没有“基于它的案例”)
Select Case Selection.Range.Font.ColorIndex
Case wdRed
Selection.Range.Font.ColorIndex = wdPink
Case wdPink
Selection.Range.Font.ColorIndex = wdYellow
Case wdYellow
Selection.Range.Font.ColorIndex = wdBlue
Case wdBlue
Selection.Range.Font.TextColor.RGB = RGB(0, 176, 240)
Case wdAuto
Selection.Range.Font.ColorIndex = wdRed
Case Else
Selection.Range.Font.ColorIndex = wdAuto
End Select
End Sub
但不是这个(Case RGB(0,176,240) 无法识别)
Select Case Selection.Range.Font.ColorIndex
Case wdRed
Selection.Range.Font.ColorIndex = wdPink
Case wdPink
Selection.Range.Font.ColorIndex = wdYellow
Case wdYellow
Selection.Range.Font.ColorIndex = wdBlue
Case wdBlue
Selection.Range.Font.TextColor.RGB = RGB(0, 176, 240)
Case RGB(0, 176, 240)
Selection.Range.Font.TextColor.RGB = RGB(256, 176, 240)
Case wdAuto
Selection.Range.Font.ColorIndex = wdRed
Case Else
Selection.Range.Font.ColorIndex = wdAuto
End Select
End Sub
所以我尝试了类似的事情但仍然没有成功(没有任何东西被识别)
Select Case Selection.Range.Font.TextColor.RGB
Case RGB(255, 0, 0)
Selection.Range.Font.TextColor.RGB = RGB(1, 255, 1)
Case RGB(1, 255, 1)
Selection.Range.Font.TextColor.RGB = RGB(0, 0, 0)
Case RGB(0, 0, 0)
Selection.Range.Font.TextColor.RGB = RGB(255, 0, 0)
Case Else
Selection.Range.Font.ColorIndex = RGB(0, 0, 0)
End Select
End Sub
答案1
不幸的是,我不知道有没有现成的快捷方式可以做到这一点。
幸运的是,由于没有快捷方式可以做到这一点,我感到非常沮丧,于是我编写了一个宏来帮我完成这件事:
Sub RotateHighlight()
'
' Rotates highlighting of selected text between:
' None, yellow, green, blue, red, pink, none, yellow, green, ...
'
' If the selected text is highlighted with anything other than these colors,
' the highlight is removed. Also, if the selection includes text whose
' highlighting is not uniform, all highlighting is removed from the selection.
'
Select Case Selection.Range.HighlightColorIndex
Case wdYellow
Selection.Range.HighlightColorIndex = wdBrightGreen
Case wdBrightGreen
Selection.Range.HighlightColorIndex = wdTurquoise
Case wdTurquoise
Selection.Range.HighlightColorIndex = wdRed
Case wdRed
Selection.Range.HighlightColorIndex = wdPink
Case wdNoHighlight
Selection.Range.HighlightColorIndex = wdYellow
Case Else
Selection.Range.HighlightColorIndex = wdNoHighlight
End Select
End Sub
为了使此宏在您在 Word 中工作时可用作键盘快捷键,请打开 VBA 编辑器(打开任何 Word 文档并按 Alt-F11)并在 Normal 模板中创建一个代码模块:
将上述代码复制/粘贴到新创建的模块中,然后使用 Ctrl-S 保存。关闭 VBA 编辑器。
在 Word 中,单击快速访问工具栏右侧带有栏的向下的小箭头三角形,然后选择“更多命令”:
在出现的对话框中,从左侧列表中选择“自定义功能区”,然后单击底部“键盘快捷键”旁边的“自定义”:
应该会出现以下对话框:
在“类别”下,一直滚动到底部并选择“宏”。在“宏”下,选择“RotateHighlight”。(除非您已经是 VBA 程序员,否则 RotateHighlight 可能是此处“宏”下的唯一项目。)单击“按新快捷键”,然后按所需的快捷键组合。我个人喜欢将其设置为 Ctrl-Alt-Shift-H。确保“当前分配给:”旁边显示“[未分配]”,然后单击底部的“分配”。完成后单击“关闭”,然后测试一下!
出于您的目的,请选择要删除突出显示的文本,以及其周围一些未突出显示的文本,然后运行宏。这应该会清除所选内容中的所有突出显示。
答案2
这个正在工作
Select Case Selection.Range.Font.TextColor.RGB
Case RGB(0, 0, 0) 'black
Selection.Range.Font.TextColor.RGB = RGB(255, 0, 0) 'red
Case RGB(255, 0, 0) 'red
Selection.Range.Font.TextColor.RGB = RGB(255, 102, 178) 'pink
Case RGB(255, 102, 178)
Selection.Range.Font.TextColor.RGB = RGB(51, 153, 255) 'blue ciel
Case RGB(51, 153, 255)
Selection.Range.Font.TextColor.RGB = RGB(178, 102, 255) 'violet
Case RGB(178, 102, 255)
Selection.Range.Font.TextColor.RGB = RGB(102, 204, 0) 'Green
Case RGB(102, 204, 0)
Selection.Range.Font.TextColor.RGB = RGB(0, 0, 0) 'black
Case Else
Selection.Range.Font.TextColor.RGB = RGB(0, 0, 0) 'black
End Select
End Sub
答案3
答案4
我在宏中使用以下代码来删除任意颜色的高亮,并为其分配了 Alt+N 快捷键:
Selection.Range.HighlightColorIndex = wdNoHighlight
Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub