格式化每行的Top 3和Bottom 3值

时间:2013-09-11 19:52:57

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

我想我可能需要一个VBA宏来解决这个问题。我有一个大约10,000行的数据集,有15列值,我想要做的是,对于每一行,通过条件格式化前三个和后三个值来突出显示。

我已经在xl2010中为第1行使用了条件格式设置工具来设置规则,但是当我在剩余的9,999行上复制粘贴特殊格式时,结果是只格式化前三个和后三个值包含在9,999行中。

我想看到每行的前3和后3的阴影,而不是整个数据集,理想情况下没有复制粘贴特殊9,999次!

1 个答案:

答案 0 :(得分:1)

宏记录功能适用于这些类型的问题,特别是对于初学者(我自己并不是很了解VBA)。

这将突出显示前三个值红色,底部三个红色突出显示。 注意我从1到1000,根据需要进行更改(列部分相同)。

编辑:更改了您的范围,我没有第一次阅读它们。

Sub Conditions()
Dim myrange As Range


For i = 1 To 10000

Set myrange = Range("A" & i & ":" & "O" & i)
myrange.FormatConditions.AddTop10
myrange.FormatConditions(myrange.FormatConditions.Count).SetFirstPriority

With myrange.FormatConditions(1)
    .TopBottom = xlTop10Top
    .Rank = 3
    .Percent = False
End With
With myrange.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 255
    .TintAndShade = 0
End With

myrange.FormatConditions(1).StopIfTrue = False
myrange.FormatConditions.AddTop10
myrange.FormatConditions(myrange.FormatConditions.Count).SetFirstPriority

With myrange.FormatConditions(1)
    .TopBottom = xlTop10Bottom
    .Rank = 3
    .Percent = False
End With
With myrange.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 15773696
    .TintAndShade = 0
End With

myrange.FormatConditions(1).StopIfTrue = False

Next

End Sub