Excel 条件格式以突出显示特定单元格,但不突出显示空单元格和文本单元格VBA

Excel 条件格式以突出显示特定单元格,但不突出显示空单元格和文本单元格VBA,excel,vba,conditional-formatting,Excel,Vba,Conditional Formatting,我有一个宏,突出显示范围外的单元格。唯一的问题是,它还突出显示所有空单元格和带有文本的单元格。有没有办法让它忽略这些 这是我的密码 Sub Highlight() ' ' Highlight good values Application.ScreenUpdating = False Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Activate With Ac

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

这是我的密码

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

当前,对应用条件格式的范围只有行限制。如果要限制受影响的范围,只需使用更改
,以同时具有限制


更新此信息:

With ActiveSheet.Rows("18:79")
With ActiveSheet.Range("A18:O79")
对此:

With ActiveSheet.Rows("18:79")
With ActiveSheet.Range("A18:O79")

编辑 如果每个工作表的行范围(18:79)相同,但列范围不同,则只需创建最后一个列变量即可创建动态范围

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

问题是,宏在多张图纸上运行,其中范围随图纸的变化而变化。有时单元格有数据,有时没有。理想情况下,我希望代码只在两个范围内都有数字的单元格上运行?也就是说,这一排总是18:79吗?或者只是列跨度发生了变化?行始终为18:79,但列将从“工作表”更改为“工作表”,并更新为“动态范围”。我假设你的射程从第1列开始。对于
单元格的语法
单元格(行索引、列索引)
谢谢您的代码。它帮助我突出显示正确的范围,但我仍然想知道如何不突出显示空单元格。有什么想法吗?