我有一个小的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)评论后,我发现这与地区设置有关。因为我在具有差异设置的计算机上进行了测试,所以它引发了错误。 (上面显示的代码适用于以“。”作为千位分隔符的计算机,而不适用于使用“。”作为千位分隔符的计算机。因此,现在的问题是如何使代码独立于区域设置?
答案 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