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列开始。对于单元格的语法
是单元格(行索引、列索引)
谢谢您的代码。它帮助我突出显示正确的范围,但我仍然想知道如何不突出显示空单元格。有什么想法吗?