首页 > 解决方案 > 尝试更改宏,以便当活动单元格是数字时,它会改变颜色,但如果不是,它不会

问题描述

这是我目前拥有的:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case True

    Case Target.HasFormula
        Target.Font.Color = RGB(0, 0, 0)
        
    Case Target.Value <= 0
         Target.Interior.Color = RGB(204, 232, 255)
         
    Case Target.Value > 0
         Target.Interior.Color = RGB(204, 232, 255)
         
    Case Else
        Target.Font.Color = RGB(0, 0, 0)
        
End Select
End Sub

但这也会为文本等着色。非常感谢任何帮助或建议。

谢谢你。

标签: excelvba

解决方案


用于IsNumeric检查单元格是否为数字。我假设您不希望将任何颜色应用于公式。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.CountLarge > 1 Then Exit Sub
    If Not IsNumeric(Target.Value) Then Exit Sub
    If Target.HasFormula Then Exit Sub

    Select Case True
        Case Target.Value <= 0
            Target.Interior.Color = RGB(204, 232, 255)
         
        Case Target.Value > 0 ' Or Case Else
            Target.Interior.Color = RGB(204, 232, 255)
    End Select

End Sub

推荐阅读