我需要VBA代码,将颜色的文本条件时,满足一个单元格。现在我的代码效率不高,可能是因为循环搜索的列E的整个范围。问题是,在E列中,我总是有一个不同范围的已使用单元格。你能帮我加速代码吗?
Sub color_status()
Dim cell As Range
For Each cell In Range("E:E")
If cell.value = "Open" Then
cell.Interior.Color = RGB(198, 224, 180)
ElseIf cell.value = "In Progress" Then
cell.Interior.Color = RGB(169, 208, 142)
ElseIf cell.value = "Done" Then
cell.Interior.Color = RGB(112, 173, 71)
ElseIf cell.value = "On Hold" Then
cell.Interior.Color = RGB(226, 239, 218)
End If
Next cell
End Sub
字符串
3条答案
按热度按时间7fyelxc51#
使用Intersect
字符串
nuypyhwy2#
Range(“E:E:)太大,无法循环-它大约有100万个像元
1 variant使用UsedRange限制它,并通过索引循环:
字符串
或2种变体
型
对我来说,使用单元格索引循环是调试更容易的-当你调试时,你立即知道行号
rmbxnbpk3#
我已经根据您提供的值创建了一个Excel文件,但我使用了条件格式。这就是结果:
x1c 0d1x的数据
由于它不是使用VBA完成的,因此性能是即时的,但我想知道您的RGB值是否正确:-)