【问题标题】:Conditional formatting to highlight specific cells but not empty and text cells VBA条件格式以突出显示特定单元格但不为空和文本单元格 VBA
【发布时间】:2020-02-05 09:04:07
【问题描述】:

我有一个宏可以突出显示范围之外的单元格。唯一的问题是它还会突出显示所有空单元格和带有文本的单元格。有没有办法让它忽略这些?

这是我的代码

Sub Highlight()
'
' Highlight good values

Application.ScreenUpdating = False

    Dim ws As Worksheet


    For Each ws In ActiveWorkbook.Worksheets

    ws.Activate

        With ActiveSheet.Rows("18:79")
            .FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
                Formula1:="=$C18", Formula2:="=$D18"
            .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
            With .FormatConditions(1).Font
                .Color = -16752384
                .TintAndShade = 0
            End With
            With .FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .Color = 13561798
                .TintAndShade = 0
            End With
            .FormatConditions(1).StopIfTrue = False
        End With

    Next ws

Application.ScreenUpdating = True

End Sub

【问题讨论】:

    标签: excel vba conditional-formatting


    【解决方案1】:

    您目前对应用条件格式的范围只有一个行限制。如果您想限制受影响的范围,您只需将 With 更改为同时具有 RowColumn 限制。


    更新:

    With ActiveSheet.Rows("18:79")
    

    致此:

    With ActiveSheet.Range("A18:O79")
    

    编辑

    如果每个工作表都有 SAME 行范围 (18:79) 但列有 VARYING 范围,您只需要创建最后一个列变量来创建动态范围

    Sub Highlight()
    
    Dim ws As Worksheet, LC As Long
    
    For Each ws In ActiveWorkbook.Worksheets
        LC = ws.Cells(18, ws.Columns.Count).End(xlToLeft).Column
    
        With ws.Range(ws.Cells(18, 1), ws.Cells(79, LC))
           'Formatting goes here
        End With
    
    Next ws
    
    End Sub
    

    【讨论】:

    • 问题是,宏在多个工作表上运行,范围因工作表而异。有时单元格有数据,有时没有。理想情况下,我希望代码只在带有数字的单元格上运行
    • 两个范围? IE。 ROW 总是 18:79 吗?还是只是列跨度发生了变化?
    • 行始终是 18:79,但列会逐页更改
    • 更新为动态范围。我假设您的范围从第 1 列开始。Cells 的语法是 Cells( Row Index, Column Index)
    • 感谢您提供的代码。它可以帮助我突出显示正确的范围,但我仍然想知道如何不突出显示空单元格。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2019-07-02
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    相关资源
    最近更新 更多