单元格格式需要随着单元格值的变化而变化

时间:2018-01-31 01:39:54

标签: excel vba excel-vba conditional-formatting

我使用以下代码将条件格式应用于工作表。问题是,如果我改变Formula1:=Cells(11,7)中的值[例如],格式化的数据不会反映更新的更改。当我打开Excel的条件格式规则管理器时,规则不会显示对实际单元格的引用,而是显示运行宏时单元格的值。有什么想法吗?

Dim i As Integer

For i = 7 To 13
    Range(Cells(21, i), Cells(118, i)).Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:=Cells(11, i)

    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With


    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
        Formula1:=Cells(13, i)

    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
       .PatternColorIndex = xlAutomatic
       .ColorIndex = 6
       .TintAndShade = 0
    End With
Next

2 个答案:

答案 0 :(得分:1)

你想要的更像Formula1:="=$G$11"所以:

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
        Formula1:="=" & Cells(11, i).Address()

答案 1 :(得分:0)

使用这样的代码设置Formula1属性。

Formula1:="=Cells(11, " & i & ")"