我想为我的工作表开发一个宏,它可以获取一个范围并根据颜色更改特定字符的颜色。这是similarly answered before here,我把加里的学生代码作为我脚本的基础。它有效,但我注意到一个我无法解决的问题。
当我的单元格已经以一个颜色与模式不同的值开始时,它只会将第一个字符更改为我想要的颜色,并将其余的字符和单词旁边的单词更改为模式。它只发生在这种情况下,对于其他以黑色(图案)开始的细胞,它可以很好地工作。
例:假设斜体字符为红色(我要更改的颜色),粗体字符为蓝色(颜色代替红色),其余为自动颜色(黑色):
应用宏之前的单元格值:这是值。 应用宏后的单元格值: T 他是一个值。
我搜索过它并没有成功。
可能是Excel错误还是脚本中的错误?
请参阅下面的代码版本:
Sub ColorChange()
Dim I As Long, J As Long, K As Long 'I = Rows, K = Columns, J = Chars
For K = 6 To 8 'For columns F to H
For I = 2 To 200 'For rows 2 to 200
For J = 1 To Len(Cells(I, K).Value)
If Cells(I, K).Characters(Start:=J, Length:=1).Font.Color <> vbAutomatic Then
Cells(I, K).Characters(Start:=J, Length:=1).Font.Color = RGB(226, 107, 10)
Cells(I, K).Characters(Start:=J, Length:=1).Font.Bold = True
End If
Next J
Next I
Next K
End Sub
答案 0 :(得分:0)
首先,没有这样的颜色索引(井...... 颜色索引)为vbAutomatic
;相反,您需要使用xlAutomatic
( - 4105)来表示自动颜色选项。
其次,Color
的{{1}}属性将返回表示所选颜色的RGB值(0 =黑色,2 24 - 1 =白色)而不是索引您选择的选项。我推测你是在Font
财产之后,虽然检查ColorIndex
可能更明智: Black 字体颜色选项没有索引 - 4105,但索引 1 。
那么,更新的Color=0
循环:
J