3

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

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

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

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

任何帮助是极大的赞赏!!!

谢谢,

布拉德

在此处输入图像描述

4

1 回答 1

1

通过运行宏记录器,我得到了一些条件格式的基本代码。我用一个rng变量替换了所有出现的选择,并将该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 列中有不间断的数据。如果没有,你d 必须调整这个循环代码:

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

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

于 2013-01-17T14:59:53.070 回答