【发布时间】:2022-04-27 02:43:40
【问题描述】:
我想为我的工作表开发一个宏,它可以选择一个范围并根据其颜色更改特定字符的颜色。这是similarly answered before here,我将 Gary 的学生代码作为脚本的基础。它奏效了,但我注意到了一个我无法解决的小问题。
当我的单元格已经以与模式不同颜色的值开始时,它只会将第一个字符更改为我想要的颜色,并将其旁边的其余字符和单词更改为模式。它只发生在这种情况下,对于其他以黑色(图案)开头的单元格,它可以完美地工作。
Ex.: 假设斜体字是red(我要改变的颜色),粗体字是blue(代替红色的颜色),其余的是自动颜色(黑色):
应用宏之前的单元格值:这是一个值。 应用宏后的单元格值: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
【问题讨论】:
-
如果单元格中所有文本的总长度小于 257 个字符,您只能更改单元格中文本子字符串的颜色。这是 Excel 中的一个已知错误。您的文本值是否小于 257 个字符?
-
您可以发布示例数据和结果吗?
-
@ExcelHero 你有关于那个“已知错误”的文档吗?在什么版本?我在 Excel 2007 中使用超过 700 个字符的字符串进行了尝试,效果很好。
-
这个错误出现在 2013 年。我认为(但不能 100% 确定它也出现在 2010 年)。我没有文档,但我已将其报告给 MS。
-
您使用的是什么版本的 Excel?我在 Excel 2007 中尝试了代码,它按预期正常工作。你能澄清你对问题的描述(第二段)吗?这对我来说不是很清楚。也许一些例子会有所帮助。