Excel VBA 8.35计数公式有很多,但是并不能实现单元格颜色的计数

计数公式有很多,但是并不能实现单元格颜色的计数


点击上方“Excel和VBA”,选择“置顶公众号”

致力于原创分享Excel的相关知识,源码,源文件打包提供

一起学习,一起进步~~


说到单元格的计数,相信大家都非常的熟悉了,单元格的计数嘛,这不是很简单的操作,Excel自带有很多的函数可以实现这样的效果

count

countif

counta

....,,,

但是如果我们需要针对单元格的颜色来计数呢?

上面的这些函数还可以实现嘛?

很明显就不能了,因为Excel并没有自带针对单元格颜色的计数,那怎么办呢?之前我们用VBA的方法将相同数据分别标记了不同的颜色,现在我希望按照颜色计数,怎么实现呢?

场景说明

这是我们之前实现的案例,来看看在这样的情况下,我们要如何来根据单元格颜色来计数

很明显的啦,VBA也不会有单独针对这个单元格颜色计数的行数,只是我们自己可以根据之前所学来自己算

如何算呢?

之前我们知道了如何将单元格的颜色调整成我们想要的颜色,那么我们现在逆过来,先判断单元格的颜色,然后循环累加就可以了。

代码区

Sub test3()Dim rng As Range, a As RangeSet rng = Application.InputBox("请选择单元格区域", "区域的选择", , , , , , 8)For Each a In rng    If a.Interior.Color = vbRed Then        CRED = CRED + 1        ElseIf a.Interior.Color = vbBlack Then            CBLACK = CBLACK + 1            ElseIf a.Interior.Color = vbBlue Then                CBLUE = CBLUE + 1                    ElseIf a.Interior.Color = vbYellow Then                        CYELLOW = CYELLOW + 1    End IfNext aMsgBox "红色" & CRED & "黑色" & CBLACKEnd Sub

看看效果,其实还是很简单的

今天的代码还是很简单的,无非就是判断每个单元格的颜色,然后循环计数即可了

回顾下之前的代码

如果获取单元格的颜色呢?

a.Interior.Color =*****

其实还可以根据颜色来求和,相减等操作,这里就不一一展开了,相信凭借大家的才智,剩下的都不是问题了。

代码解析

(0)

相关推荐