【发布时间】:2013-11-22 11:17:51
【问题描述】:
我正在尝试编写一个子过程,它将某些条件格式应用于 Excel 中的一系列单元格。 我有点卡住了,所以我使用了宏记录器。但是,我无法弄清楚它为什么要应用下面的公式,而当我手动运行代码时它会失败。
- 我要做的是对范围内的空白单元格应用条件格式。
- 我想将单元格颜色设为灰色
- 范围是一个表,该表称为“Table1”。
- 我需要在 sub 中执行此操作,因为表会动态刷新。
以下是录制的宏,它不起作用,而是将格式应用于错误的单元格。 任何纠正它的帮助将不胜感激
谢谢
Sub MacroTest()
Range("Table1").Select
'The below formula is wrong but I can't figure out what it should be
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(TRIM(D15))=0"
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.399945066682943
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub
【问题讨论】:
-
“错误的单元格”是指它不针对零长度值,还是将格式随机放置在
Table 1中的任何位置? -
正确。它不针对零长度值/空白单元格,而是将格式设置在具有日期值的单元格中。我猜这个公式是完全错误的,需要重写。我已经研究过在公式中使用 IsEmpty 和 IsBlank 函数,但无法正确计算出来。
-
@Eddie 我知道这篇文章已经过时了,但是对于未来的访问者来说,一个优雅的解决方案是简单地使用
Selection.FormatConditions.Add Type:=xlBlanksCondition而不需要任何formula1!
标签: vba excel conditional-formatting