VBA基于其他单元格设置条件格式报运行时错误5如何解决?
错误产生原因
- 条件格式类型参数不匹配:你需要基于W列的数值判断V列的格式,属于使用自定义公式触发条件,不能使用
xlCellValue类型(该类型仅支持判断当前被设置条件格式的单元格自身的数值),必须使用xlExpression类型,参数类型错误直接触发无效过程调用报错。 - 多余参数不匹配:
Operator:=xlEqual是xlCellValue类型的配套参数,使用xlExpression自定义公式类型时不需要该参数,多余参数会导致调用失败。 - 公式字符串引号转义错误:VBA语法规定,字符串内部如果要表示一个双引号,需要连续写两个双引号进行转义,你写的
"=""$W1=""Each""""""引号数量不匹配、语法错误,无法被识别为合法公式。
修复方案
直接将出错的代码行替换为以下内容即可:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$W1=""Each"""
如果需要优化代码稳定性,也可以避免使用Select语句,修改后的完整参考代码如下:
Sub ComConFormGreen() ' 给W列设置条件格式 With Columns("W:W").FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Each""") .SetFirstPriority .Font.Color = -16752384 .Font.TintAndShade = 0 .Interior.PatternColorIndex = xlAutomatic .Interior.Color = 13561798 .Interior.TintAndShade = 0 .StopIfTrue = False End With ' 给V列设置关联W列的条件格式 With Columns("V:V").FormatConditions.Add(Type:=xlExpression, Formula1:="=$W1=""Each""") .SetFirstPriority .Font.Color = -16752384 .Font.TintAndShade = 0 .Interior.PatternColorIndex = xlAutomatic .Interior.Color = 13561798 .Interior.TintAndShade = 0 .StopIfTrue = False End With End Sub
内容的提问来源于stack exchange,提问作者Icoeph
相关产品推荐
相关产品推荐

