【发布时间】:2020-06-12 16:00:08
【问题描述】:
如果单元格的内容与以前不同,我正在尝试编写 VBA 以更改表格行的颜色(在两个不同的颜色之间)。 第 n 行。 3必须有这个颜色:RGB(221,245,253),而另一种颜色是白色。 我无法弄清楚哪个是逻辑代码以及如何在不更改字体颜色的情况下更改单元格的背景颜色。
Public Sub Overview()
Dim Ovtask As String
Dim Ovn, Ovi As Integer
Ovn = Range("B2").CurrentRegion.Rows.Count
Range("B3:C3").Font.Color = RGB(221, 245, 253)
For Ovi = 3 To Ovn + 1
Ovtask = Range("B" & Ovi)
If Range("B" & Ovi + 1) = Ovtask Then
Range("B" & Ovi + 1 & ":" & "C" & Ovi + 1).Font.Color = Range("B" & Ovi & ":" & "C" & Ovi).Font.Color
Else
Range("B" & Ovi + 1 & ":" & "C" & Ovi + 1).Font.Color = RGB(0, 0, 0)
End If
Next Ovi
End Sub
【问题讨论】:
-
Range.Interior.Color? -
另外,请注意,您可以使用条件格式获取交替颜色,并且您不需要 VBA。
-
没错,但结果不是我想要的:肯定代码有错误,结果颜色是黑色而不是白色
-
@user3561813 我试过没有成功。我在条件格式中的难点是如何分配颜色,因为当条件为真时颜色保持不变,当条件为假时必须改变,相对于前一行的颜色。例如:row1以蓝色开头,row2条件false->将颜色改为白色,row3条件false->将颜色改为蓝色,row4条件true->保持蓝色,row5条件false->将颜色改为白色, row6 条件为真->保持颜色为白色
标签: excel vba rows rgb conditional-formatting