通过在Excel 2016上运行的Excel VBA进行条件格式设置存在问题。 我有以下简单的代码:
With targetSheet.Range("J:J")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=AND(ISBLANK($J1), NOT(ISBLANK($A1)), ISBLANK($K1))"
.FormatConditions(1).Interior.ColorIndex = 53
End With
(targetSheet
在其他地方定义,因此无需担心)。
此代码在我的计算机上运行良好。没有运行时错误,当我打开条件格式弹出窗口时,我看到正确的公式如下:
"=AND(ISBLANK($J1), NOT(ISBLANK($A1)), ISBLANK($K1))"
(包括引号)
当我将此Excel发送给办公室中的其他人(我们所有人都有Excel 2016)时,其中一些人收到以下错误:
“运行时错误'5':无效的过程调用或参数。”
调试后,我发现错误是因为=AND
运算符。
如果我删除=
(等号),它在运行时不会失败,但条件格式设置功能是错误的。当我打开条件格式弹出窗口时,它会显示:
="AND(ISBLANK($J1), NOT(ISBLANK($A1)), ISBLANK($K1))"
Formula1:
的正确语法是什么?
答案 0 :(得分:1)
不幸的是,CF公式必须与在目标机器上输入的完全相同,因此容易受到计算机之间的语言和区域问题的影响。您可以做的是让代码将公式输入到单元格中,然后回读该单元格的FormulaLocal
属性,并在CF设置中使用它。