我正在尝试编写一个子过程,它将一些条件格式应用于 Excel 中的一系列单元格。
我有点卡住了,所以我使用了宏录制器。然而,我无法弄清楚为什么它应用下面的公式,并且当我手动运行代码时它失败了。
- 我想要做的是将条件格式应用于范围内的空白单元格。
- 我想让单元格颜色变成灰色
- 该范围是一个表,该表称为“Table1”。
- 我需要在子程序中执行此操作,因为表会动态刷新。
下面是录制的宏,它不起作用,而是将格式应用于错误的单元格。
任何纠正它的帮助将不胜感激
Thanks
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
经过一番搜索后,我发现一个选项可以在不使用函数 LEN 的情况下工作,并且需要使用 xlBlanksCondition 指定范围。
我不明白为什么宏记录器会提出 LEN 解决方案,如果它也可以使用 xlBlanksCondition 解决方案。
Source: MSDN微软 https://msdn.microsoft.com/en-us/vba/excel-vba/articles/xlformatconditiontype-enumeration-excel
我首先选择一个范围,然后应用以下代码:
With Selection.FormatConditions.Add(Type:=xlBlanksCondition)
.StopIfTrue = False
.Interior.PatternColorIndex = xlAutomatic
.Interior.Color = RGB(226, 80, 80)
.Interior.ThemeColor = xlThemeColorAccent2
.Interior.TintAndShade = 0.39
.Font.Color = vbBlack
.Font.TintAndShade = 0
.Borders.LineStyle = xlContinuous
.Borders.TintAndShade = 0
.Borders.Weight = xlThin
.Borders.Color = RGB(255, 0, 0)
.StopIfTrue = False
End With
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)