-
这个用公式没法完成,用VBA代码完成 ,宏代码如下:
Sub mycolor()
Dim rg As Range, rgg As Range
Set rg = Selection
For Each rgg In rg
If rgg.Interior.ColorIndex > 0 Then
n = n + 1
End If
Next
Range("a5") = n
End Sub效果如下:
-
(1)转置法
选择“这一行”——复制——选择空列第2个单元格——选择性粘贴——转置。
这样横向的就变成纵向的了,在2007以上版本中就能进行填充色筛选了。(这里如何筛选就不赘述了)。
(2)自定义函数法
=COUNTYS(A1:Q1)
COUNTYS是自定义函数,其代码:
Public Function COUNTYS(rag As Range)
Dim n%
For Each cel In rag
If cel.Interior.ColorIndex <> xlNone Then n = n + 1
Next cel
COUNTYS = n
End Function
说明:
1)当求数区域填充色改变后,函数的值不会跟着变化,需要重新输入一下。
2)函数适用于你说的“想知道横向这一行有几个单元格是有颜色填充的”,
不适用于“想知道横向这一行有几个单元格是某种颜色填充的”。
3)第1个图中,第10行于第11行看似一样,结果却不同,
这是因为第10行有填充色(白色),而第11行无填充色的缘故。
如本站内容“对您有用”,欢迎随意打赏,让我们持续更新!
打赏