此代码的2016版本是什么? (运行时错误5)

时间:2019-06-19 15:51:07

标签: excel vba

我有一个小的VBA代码,可以在Excel中创建条件格式设置,它在Excel 365上运行良好,但是在尝试使用早期版本的excel(例如2016)时会生成“运行时错误5”。您能否建议一个修复程序使其适用于大多数版本?

Public Sub CF()

    With Range("K20:ZH20").FormatConditions.Add(Type:=xlExpression, Formula1:="=ISNUMBER(SEARCH(" & Chr(34) & "Project Exec" & Chr(34) & ";$A$20))")
        .Interior.Pattern = xlPatternLightUp
    End With

End Sub

谢谢!


约翰·科尔曼(John Coleman)评论后,我发现这与地区设置有关。因为我在具有差异设置的计算机上进行了测试,所以它引发了错误。 (上面显示的代码适用于以“。”作为千位分隔符的计算机,而不适用于使用“。”作为千位分隔符的计算机。因此,现在的问题是如何使代码独立于区域设置?

1 个答案:

答案 0 :(得分:0)

我从另一个威胁中找到了使用FormulaLocal属性的解决方案。上面的代码可与任何“区域设置”一起使用,如下所示:

Public Sub CF()
    Dim formula as String 
    formula = "=ISNUMBER(SEARCH(" & Chr(34) & "Project Exec" & Chr(34) & ",$A$20))" 
    Range("A1").Formula = formula     
    formula = Range("A1").FormulaLocal
    With Range("K20:ZH20").FormatConditions.Add(Type:=xlExpression, Formula1:=formula)
        .Interior.Pattern = xlPatternLightUp
    Range("A1").ClearContents
    End With

End Sub