自动更改单元格背景颜色Excel VBA

自动更改单元格背景颜色Excel VBA,excel,vba,colors,cell,Excel,Vba,Colors,Cell,所以基本上我想要一个可以改变细胞颜色的代码。 例如,如果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 我认为您可以了解下面的代码是如何工作的

所以基本上我想要一个可以改变细胞颜色的代码。 例如,如果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

我认为您可以了解下面的代码是如何工作的,并进行必要的更改

Sub color() Dim ws As Worksheet Dim r As Range, c As Range Set ws = ThisWorkbook.ActiveSheet With ws Set r = Range("A1").CurrentRegion End With For Each c In r If c.Value = 1 And ((c.Offset(, 1) = 0.03) Or (c.Offset(, 1) = 0.54) Or (c.Offset(, 1) = 0.05)) Then Range(c, c.Offset(, 1)).Interior.ColorIndex = 4 ElseIf c.Value = 1 And ((c.Offset(, 1) = 0.01) Or (c.Offset(, 1) = 0.02)) Then Range(c, c.Offset(, 1)).Interior.ColorIndex = 3 End If Next End Sub 子颜色() 将ws设置为工作表 变暗r为范围,c为范围 设置ws=ThisWorkbook.ActiveSheet 与ws 设置r=范围(“A1”)。当前区域 以 对于r中的每个c 如果c.值=1且((c.偏移(,1)=0.03)或(c.偏移(,1)=0.54)或(c.偏移(,1)=0.05)),则 范围(c,c.偏移(,1)).Interior.ColorIndex=4 如果c.值=1和((c.偏移(,1)=0.01)或(c.偏移(,1)=0.02)),则 范围(c,c.偏移(,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中不能转换为属性。值进行转换