【发布时间】:2018-12-17 19:21:06
【问题描述】:
我正在尝试获取 U 列中不等于 2.04 或 3.59 的所有单元格来更改单元格颜色。
代码如下:
Private Sub Cell_Color_Change()
For Each cell In Range("U2:U19004")
If cell.Value <> 2.04 Or 3.59 Then cell.Interior.ColorIndex = 3
Next cell
End Sub
由于某些原因,该代码将整列变为红色。 我试过使用条件格式,同样的事情发生了。 请帮忙。谢谢!
【问题讨论】:
-
您使用了错误的逻辑运算符。如果您希望等于 2.04 或 3.59 的单元格更改颜色,您应该使用
=运算符。此外,您需要比较它两次,即cell.value = 2.04 or cell.value = 3.59 -
我很抱歉布罗塔托。我的意思是说不等于。我的错。谢谢!
-
我已经有一段时间没有使用VBA了,但请尝试
If cell.Value <> 2.04 Or cell.Value <> 3.59 Then cell.Interior.ColorIndex = 3 -
我相信通过在第二部分不添加运算符,VBA会将数字视为真实,因为0以外的任何东西都是真实的,它总是会发生
-
我会避免使用 Color.Index,因为使用可以改变主题,然后你的颜色可以改变。所以在一个主题下,Color.Index(1) 可能是橙色,但在另一个主题下,它可能是蓝色。我建议在设置颜色时始终使用 RGB 值。