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

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

急求,在线等。。。。

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

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

跪求大神高手!!!
是分别设置B1:B10这个范围内的数字最大的前5位填充浅红色底纹,,D1;D10这个范围内的数字最大的前5位填充浅红色底纹......
展开
 我来答
K_BEAT
推荐于2016-11-21 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:404万
展开全部

您好,您的需求可以通过 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 计算工作簿/表,接着各列中的前五个数就会跟着自动变化):

百度网友7f9380e59
2015-04-17 · TA获得超过422个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:172万
展开全部
在VBA代码中取消随机函数的易失性即可
更多追问追答
追问
怎么取消?
追答
在代码开始位置增加
Application.Volatile (False)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
biaotiger1
2015-04-17 · TA获得超过1166个赞
知道小有建树答主
回答量:1570
采纳率:33%
帮助的人:431万
展开全部
你录制一个宏不就搞定了吗啊?
追问
就是懒到连录制宏都不想
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式