如果单元格值大于其他列中的另一个单元格,则需要更改单元格颜色。例如,G6中的值> D6,这条规则需要适用于整个专栏。
我用formatConditions实现了一些代码,但结果不太正确。
Set rngCell = Cells(6, 7)
Set objCF = rngCell.FormatConditions.Add _
(Type:=xlCellValue, Operator:=xlGreater, Formula1:=rngCell.offset(, -3))
'set formats for new CF
With objCF
.Font.ColorIndex = 26
.Interior.ColorIndex = 19
End With
使用此代码,我得到的结果规则是:Cell Value> 18(18是D6的细胞值)
但我想要的是规则:细胞价值> $ D6
任何人都可以提供帮助吗?
答案 0 :(得分:1)
这是我使用的方法(您可以使用Macro Recorder轻松创建和修改一个)。格式化将应用于第七列(“G”)。该公式是不言自明的。请注意,由于公式是一个字符串,您可以动态地连接列/行。
Dim r As Range
Set r = Sheet1.Columns(7)
r.FormatConditions.Add Type:=xlExpression, Formula1:="=$G1>$D1"
r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
With r.FormatConditions(1)
.Interior.PatternColorIndex = xlAutomatic
.Interior.ColorIndex = 19
.Font.ColorIndex = 26
End With
r.FormatConditions(1).StopIfTrue = False
set r = nothing
答案 1 :(得分:0)
如果你正在做那个单元格,那么试试这个
Set rngCell = Cells(6, 7)
Set objCF = rngCell.FormatConditions.Add(Type:=xlExpression, _
Operator:=xlGreater, _
Formula1:="=" & rngCell.Address & ">" & rngCell.Offset(, -3).Address)
'set formats for new CF
With objCF
.Font.ColorIndex = 26
.Interior.ColorIndex = 19
End With
如果您正在为整个列执行此操作,请尝试此
Set rngCell = Cells(1, 7)
Set objCF = Columns("G:G").FormatConditions.Add(Type:=xlExpression, _
Operator:=xlGreater, _
Formula1:="=" & Replace(rngCell.Address, "$", "") & _
">" & Replace(rngCell.Offset(, -3).Address, "$", ""))
'set formats for new CF
With objCF
.Font.ColorIndex = 26
.Interior.ColorIndex = 19
End With
答案 2 :(得分:0)
感谢大家的投入,也许我没有正确描述我的问题。我想要的只是改变G列中一个单元格的颜色,例如值$ G $ 9> $ D $ 9,然后我只需要改变单元格G9的格式,整个列的规则相同(排除四个行的行)。
现在我已经找到了一个解决方案,目前它工作正常。
Dim r As Range
Set r = Cells(5, 7)
r.FormatConditions.Delete
r.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=$D5"
r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
With r.FormatConditions(1)
.Interior.PatternColorIndex = xlAutomatic
.Interior.ColorIndex = 19
.Font.ColorIndex = 26
End With
r.FormatConditions(1).StopIfTrue = False
r.Copy
Range("G5:G" & lastRowNum).PasteSpecial xlPasteFormats