excel - excel - VBA - 单元格刷新后我无法刷新链接到公式的形状条件格式
问题描述
我需要你的帮助。上下文:我有一个 VBA 可以将颜色(绿色、橙色、红色)更改为与 % 值相关的几个形状。这些值将根据列表框而改变。但是,如果 % 更改,则格式不遵循。
宏如下 - 你知道如何“强制”刷新以便形状格式跟随任何单元格更改吗?下面试图强制它失败。
Private Sub Worksheet_Change(ByVal Target As Range)
EnableFormatConditionsCalculation = True
If Target.Address = "$K$16" Then
With Sheets("Resources").Shapes("Oval 1")
If Sheets("Resources").Cells(16, 11).Value < 0.95 Then
.Fill.ForeColor.RGB = RGB(255, 0, 0)
Else If
Sheets("Resources").Cells(16, 11).Value > 0.99 Then
.Fill.ForeColor.RGB = RGB(0, 255, 0)
Else
.Fill.ForeColor.RGB = RGB(255, 153, 0)
End If
End If
End With
ElseIf Target.Address = "$L$16" Then
With Sheets("Resources").Shapes("Oval 2")
If Sheets("Resources").Cells(16, 12).Value < 0.95 Then
.Fill.ForeColor.RGB = RGB(255, 0, 0)
Else If Sheets("Resources").Cells(16, 12).Value > 0.99 Then
.Fill.ForeColor.RGB = RGB(0, 255, 0)
Else
.Fill.ForeColor.RGB = RGB(255, 153, 0)
End If
End If
End With
Range("K16:W16").Calculate
End If
End Sub
解决方案
如果用户手动更改任何单元格,则将启动Worksheet_Change 。如果您的任何公式(如RANDBETWEEN )会带来新价值,则不会触发它。
您可能有兴趣将您的例程重铸为VOLATILE类型的 VBA 公式。单击链接以遵循一些说明。长话短说 - 您可以将一个特殊命令放入您的用户定义函数中,以便在您的工作簿中每次发生更改时运行它。您可以将这个公式放入$K$16单元格中。
希望有帮助。