EXCEL用VBA代码设置单元格条件格式。急求高手!!!大神速来,跪求!!

要求如图:

急求,在线等。。。。

值得注意的是那些数据都是有VBA运算得来的,所以它是动态的,我用条件格式设置,它数据一刷新条件格式就没了。。。所以又要重来,很浪费时间精力,

所以求能否用VBA来设置单元格的条件格式。。

跪求大神高手!!!
是分别设置B1:B10这个范围内的数字最大的前5位填充浅红色底纹,,D1;D10这个范围内的数字最大的前5位填充浅红色底纹......

您好,您的需求可以通过 VBA 添加单元格的条件格式来实现,演示代码如下:

Public Sub SetTop5()
    Dim t5 As Top10
    
    Set t5 = Union(Range("B1:B10"), _
                   Range("D1:D10"), _
                   Range("F1:F10"), _
                   Range("H1:H10")).FormatConditions.AddTop10
    With t5
        .TopBottom = xlTop10Top
        .Rank = 5
        .Interior.Color = &HCEC7FF
    End With
    
    Set t5 = Nothing
End Sub

追问

你的代码不是分别设置B1:B10这个范围内的数字最大的前5位填充浅红色底纹,,D1;D10这个范围内的数字最大的前5位填充浅红色底纹的。。。。你自己看看




它不是显示每列数值大的前5个,

追答

那就用循环解决:

Public Sub SetTop5()
    Dim t5 As Top10
    Dim lngCol As Long
    
    For lngCol = 2 To 8 Step 2
        Set t5 = Cells(1, lngCol).Resize(10).FormatConditions.AddTop10
        
        With t5
            .TopBottom = xlTop10Top
            .Rank = 5
            .Interior.Color = &HCEC7FF
        End With
    Next
    
    Set t5 = Nothing
End Sub

 

运行效果(B、D、F、H 列中用了随机数公式 =RANDBETWEEN(1,100),然后按 F9 或 Shift+F9 计算工作簿/表,接着各列中的前五个数就会跟着自动变化):

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-17
在VBA代码中取消随机函数的易失性即可追问

怎么取消?

追答

在代码开始位置增加
Application.Volatile (False)

追问

没用

第2个回答  2015-04-17
你录制一个宏不就搞定了吗啊?追问

就是懒到连录制宏都不想

相似回答