根据计算的单元格值更新形状的颜色

问题描述

我试图用彩色形状显示特定百分比变量的状态,越高越差。我尝试使用 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