Excel 2010条件格式化单个行

时间:2013-01-17 14:25:42

标签: excel-vba excel-2010 rows conditional-formatting vba

我正在尝试在844个不同的行上使用条件格式(绿色 - 黄色 - 红色色标)来跟踪过去六年中的溢价量(年份是列)。这是每个卷列之间棘手的部分是项目数。我想格式化每一行的高级卷,并保持项目数不变。

此时我通过按住ctrl然后选择条件格式来选择每个单独的高级音量单元格。

我正在尝试自动执行此功能,因此我不必为844行和未来的电子表格继续此过程。

我附上了工作表的图片供您参考。

非常感谢任何帮助!!!

谢谢,

布拉德

enter image description here

1 个答案:

答案 0 :(得分:1)

我通过运行宏记录器获得了条件格式的一些基本代码。我用rng变量替换了所有出现的Selection,并将rng变量设置为子例程的参数,以便可以循环调用Sub:

Sub SetRangeCF(rng As Excel.Range)

rng.FormatConditions.AddColorScale ColorScaleType:=3
rng.FormatConditions(rng.FormatConditions.Count).SetFirstPriority
rng.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With rng.FormatConditions(1).ColorScaleCriteria(1).FormatColor
    .Color = 8109667
    .TintAndShade = 0
End With
rng.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
rng.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With rng.FormatConditions(1).ColorScaleCriteria(2).FormatColor
    .Color = 8711167
    .TintAndShade = 0
End With
rng.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With rng.FormatConditions(1).ColorScaleCriteria(3).FormatColor
    .Color = 7039480
    .TintAndShade = 0
End With
End Sub

然后在循环中调用上面的sub,在这种情况下,对于在A列中具有值的任何行,调用一次。这假设条件格式在第2行开始,并且在A列中有不间断的数据。如果不是,你必须调整这个循环代码:

Sub SetEachRow()
Dim ws As Excel.Worksheet
Dim LastRow As Long
Dim cell As Excel.Range

Set ws = ActiveSheet    'change as necessary
With ws
    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
    For Each cell In .Range("A1:A" & LastRow)http://stackoverflow.com/questions/10245638/excel-changes-conditional-formatting-formula?rq=1
        cell.EntireRow.FormatConditions.Delete
        SetRangeCF cell.EntireRow
    Next cell
End With
End Sub

我不知道行的限制是什么,但1000对我来说很好。