我正在尝试在844个不同的行上使用条件格式(绿色 - 黄色 - 红色色标)来跟踪过去六年中的溢价量(年份是列)。这是每个卷列之间棘手的部分是项目数。我想格式化每一行的高级卷,并保持项目数不变。
此时我通过按住ctrl然后选择条件格式来选择每个单独的高级音量单元格。
我正在尝试自动执行此功能,因此我不必为844行和未来的电子表格继续此过程。
我附上了工作表的图片供您参考。
非常感谢任何帮助!!!
谢谢,
布拉德
答案 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对我来说很好。