【问题标题】:Automatically Changing Cell Background Colors Excel VBA自动更改单元格背景颜色 Excel VBA
【发布时间】:2017-09-17 13:03:28
【问题描述】:

所以基本上我想要一个可以改变单元格颜色的代码。 例如,如果 A1 = 1 且 B1 = 3%、54% 或 5%,则将 B1 的背景颜色更改为绿色。否则,如果 B1 = 1% 或 2% 将颜色变为红色。

这是我目前所拥有的,我似乎无法弄清楚。任何帮助将不胜感激。

Sub color()
  Range("A1:B1").Formula = " = If(A1 = 1 AND B1 =3%,Range("A1:B1").Interior.ColorIndex = 4)"
End Sub

【问题讨论】:

    标签: excel vba colors cell


    【解决方案1】:

    我认为您可以弄清楚下面的代码是如何工作的并进行必要的更改

    子颜色() 暗淡为工作表 Dim r As Range, c As Range 设置 ws = ThisWorkbook.ActiveSheet 与 ws 设置 r = Range("A1").CurrentRegion 结束于 对于每个 c In r 如果 c.Value = 1 并且 ((c.Offset(, 1) = 0.03) 或 (c.Offset(, 1) = 0.54) 或 (c.Offset(, 1) = 0.05)) 那么 Range(c, c.Offset(, 1)).Interior.ColorIndex = 4 ElseIf c.Value = 1 And ((c.Offset(, 1) = 0.01) Or (c.Offset(, 1) = 0.02)) 那么 Range(c, c.Offset(, 1)).Interior.ColorIndex = 3 万一 下一个 结束子

    【讨论】:

    • 当我将范围更改为 ("L2:L7") 时它停止工作,您能告诉我您认为可能有什么问题吗?
    • 将设置 r = Range("A1").CurrentRegion 更改为设置 r = Range("L1").CurrentRegion
    • 非常感谢。有没有办法可以将条件语句从 1 更改为 c.String = "Good" 之类的字符串。
    • 是的,您几乎可以使用它,只需将 c.value = 1 更改为 c.value = "Good",在 openoffice obasic 中是的,您可以将单元格对象转换为字符串,但不能在 vba 中,属性 .value 进行强制转换
    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2012-06-10
    相关资源
    最近更新 更多