[英]Counting merged cells as one with the COUNT IF function while also using other COUNT IF criteria
我使用以下 VBA 模块根据单元格颜色使用 COUNT IF 函数计算列中的项目列表:
Function CountCcolor(range_data As range, criteria As range) As Long
Dim datax As range
Dim xcolor As Long
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor Then
CountCcolor = CountCcolor + 1
End If
Next datax
End Function
但是,我的列表也包含合并的单元格,虽然上述功能有效,但它将合并的单元格计数为构成合并单元格的单元格数(例如,由 3 个常规单元格组成的合并单元格在列表中计为 3 )。 如果可能,我需要一种方法将合并的单元格计数为 1 个单元格,同时仍保持颜色编码计数。
任何帮助将不胜感激,谢谢!
分别处理合并的单元格和未合并的单元格,然后将其全部添加在一起:
Function CountCcolor(range_data As Range, criteria As Range) As Long
Application.Volatile
Dim datax As Range
Dim xcolor As Long
Set D1 = CreateObject("scripting.dictionary")
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor Then
If datax.MergeCells Then
D1(datax.MergeArea.Address) = datax.MergeArea.Address
Else
CountCcolor = CountCcolor + 1
End If
End If
Next datax
CountCcolor = CountCcolor + D1.Count
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.