如果该行中的两个单元格具有相同的值,我正在尝试为整行着色。这是我现在的代码:
For i = 2 To LastRow
If Worksheets("Request Results").Cells(i, 4).Value <> Worksheets("Request Results").Cells(i, 6).Value Then
Cells(i, 1).EnitreRow.Interior.ColorIndex = 255
ElseIf Worksheets("Request Results").Cells(i, 4).Value = Worksheets("Request Results").Cells(i, 6).Value Then
Cells(i, 1).EntireRow.Interior.ColorIndex = 5296274
End If
Next i
循环首先进入else语句,我在Cells(i, 1).EntireRow.Interior.ColorIndex = 5296274
行上得到“下标超出范围”错误,我不太清楚为什么。有谁知道可能导致此错误的原因是什么?我尝试过的一切都失败了。
答案 0 :(得分:12)
将ColorIndex更改为Color。
Cells(i, 1).EntireRow.Interior.Color = 5296274
答案 1 :(得分:11)
有谁知道可能导致此错误的原因?
来自ColorIndex
财产的MSDN help:
ColorIndex属性可以包含0到0之间的有效整数参数 56,产生颜色。但是,您可以指定十进制或字符串 值的属性,而不会生成运行时错误。在这些 实例,Excel尝试随机应用对应的颜色 参数值。但是,将属性设置为整数值 超出0到56范围会导致以下错误:
运行时错误'9':下标超出范围
您可以在同一页面上找到带有效索引的调色板:
请注意,ColorIndex
与Color
不同,Color
使用RGB规范,功能更多。有关ColorIndex
vs Color
here的更多信息。
我个人更喜欢使用vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan
和内置VBA Color Enumerations vbWhite
以及{{1}}。对于大多数应用来说,这些都足够了,但如果需要更多颜色using a custom enumeration color is also possible,并且比查找RGB表更优雅..
我希望这有帮助!
答案 2 :(得分:0)
我在类似的行突出显示问题上使用了类似的方法。
For Each Rng in SomeRange.Columns(1).Cells
Rng.EntireRow.Interior.Color = 5296274
Next