首页 > 解决方案 > 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

标签: excelvba

解决方案


如果用户手动更改任何单元格,则将启动Worksheet_Change 。如果您的任何公式(如RANDBETWEEN )会带来新价值,则不会触发它。

您可能有兴趣将您的例程重铸为VOLATILE类型的 VBA 公式。单击链接以遵循一些说明。长话短说 - 您可以将一个特殊命令放入您的用户定义函数中,以便在您的工作簿中每次发生更改时运行它。您可以将这个公式放入$K$16单元格中。

希望有帮助。


推荐阅读