使用NB.SI.ENS(COUNTIFS)设置条件格式无效,求助VBA高亮实现
解决条件格式无效问题及VBA实现方案
一、修正条件格式公式
你用NB.SI.ENS(COUNTIFS)的思路错了——这个函数是统计符合条件的单元格数量,返回的是数字,而条件格式需要的是布尔判断结果(真/假)。直接用逻辑判断函数就能搞定:
选中需要设置格式的范围(比如C2:C10),设置条件格式的公式规则为:
ET(C2=""; B2<AUJOURDHUI())
ET()对应英文的AND(),同时满足两个条件:- 当前行的Paid列单元格(C2)为空
- 当前行的到期日(B2)早于今日日期(
AUJOURDHUI())
设置好后,满足条件的单元格就会被高亮。
二、VBA宏代码实现
以下是直接实现上述条件格式规则的VBA代码,运行后会自动给C2:C10添加规则:
Sub AddConditionalFormatting() Dim ws As Worksheet Dim targetRange As Range Dim cfRule As FormatCondition ' 设置目标工作表(可根据实际修改,比如Sheet1) Set ws = ThisWorkbook.Worksheets("Sheet1") ' 设置目标范围 Set targetRange = ws.Range("C2:C10") ' 清除原有同类型规则(可选,避免重复) targetRange.FormatConditions.Delete ' 添加新的条件格式规则 Set cfRule = targetRange.FormatConditions.Add(Type:=xlExpression, Formula1:= _ "=ET(C2=""""; B2<AUJOURDHUI())") ' 设置高亮格式(这里用浅红填充,可按需修改) With cfRule.Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With ' 设置字体格式(可选) cfRule.Font.Bold = True End Sub
代码说明:
- 先指定目标工作表和范围,清除原有规则避免冲突
- 添加基于公式的条件格式,公式用法语逻辑判断
- 设置填充颜色和字体样式,可根据需求调整颜色值或格式
内容的提问来源于stack exchange,提问作者lagnaoui jihane
相关产品推荐
相关产品推荐

