问题描述
我试图用彩色形状显示特定百分比变量的状态,越高越差。我尝试使用 Worksheet_Change 但这不起作用,因为这是一个计算单元格,用户不会直接更改它。我的 Worksheet_Calculate 语法有什么问题?
我只用普通数字(不是百分比)尝试过,但仍然不起作用。
这是工作表上的代码
Private Sub Worksheet_Calculate()
Dim target As Range
Set target = Range("A1")
If Not Intersect(target,Range("A1")) Is nothing Then
If IsNumeric(target.Value) Then
If target.Value < 0.1 Then
ActiveSheet.Shapes("oval 1").Fill.ForeColor.RGB = vbGreen
ElseIf target.Value >= 0.1 And target.Value < 0.25 Then
ActiveSheet.Shapes("oval 1").Fill.ForeColor.RGB = vbBlue
ElseIf target.Value >= 0.25 And target.Value < 0.5 Then
ActiveSheet.Shapes("oval 1").Fill.ForeColor.RGB = vbBlue
Else
ActiveSheet.Shapes("oval 1").Fill.ForeColor.RGB = vbRed
End If
End If
End If
End Sub
谢谢, 勒普
解决方法
代码工作如下,
If IsNumeric(Range("A1").Value) Then
If Range("A1").Value < 0.1 Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbGreen
ElseIf Range("A1").Value >= 0.1 And Range("A1").Value < 0.25 Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbBlue
ElseIf Range("A1").Value >= 0.25 And Range("A1").Value < 0.5 Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbYellow
Else
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbRed
End If
End If
End Sub
感谢@BigBen