我有一个每周使用的扫描/ OCR文档,但并非所有" reds"是相同的,也不是所有的"黑人"真黑。有一系列红色到粉红色和黑色到灰色。我想将这两种颜色标准化为深红色和真正的黑色,而不必遍历每一页(超过200页,每种颜色都有两种颜色的不同色调)。
有没有办法根据RGB属性中的范围选择文本,例如R> 200,G< 100,B< 100?
在没有更简单,更优雅的方式的情况下,我想我可以使用嵌套循环,但这会迭代50万次。
答案 0 :(得分:0)
一次通过无法对一系列颜色进行查找/替换。您必须为要更改的每个可想到的RGB组合编码。例如:
Sub Demo()
Application.ScreenUpdating = False
Dim R As Long, G As Long, B As Long
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
For R = 201 To 255
For G = 0 To 99
For B = 0 To 99
.Font.Color = RGB(R, G, B)
.Replacement.Font.ColorIndex = wdRed
.Execute Replace:=wdReplaceAll
Next
DoEvents
Next
Next
End With
End With
Application.ScreenUpdating = True
End Sub
根据您的规格要做539,055次迭代,不要指望快速结果。