【发布时间】:2015-07-23 21:35:56
【问题描述】:
需要公式将一列中的文本与不同工作表中的文本匹配并计算突出显示的单元格。这类似于执行 sumif,但不是在静态列中返回数值,而是返回突出显示的单元格的计数。
我已成功编写 VBA 来计算给定列中突出显示的单元格,但现在必须匹配名称。意思是,如果 A1:A50 列中的名称与 Sheet2 列 J1:J52 中的名称匹配,则返回工作表 2 X 列中突出显示的单元格的计数。
计算高亮单元格的公式:countbycolor('sheet2'!J4:J1847,A52)
VBA:
Function CountByColor(InputRange As Range, ColorRange As Range) As Long
Dim cl As Range, TmpCount As Long, ColorIndex As Integer
Application.Volatile
ColorIndex = ColorRange.Interior.ColorIndex
TmpCount = 0
On Error Resume Next
For Each cl In InputRange.Cells
If cl.Interior.ColorIndex = ColorIndex _
Then TmpCount = TmpCount + 1
Next cl
CountByColor = TmpCount
End Function
【问题讨论】:
-
A1:A50 包含 50 个单元格,以检查包含 52 个单元格的 J1:J52。您是要查看 A1 中的文本是否包含在 J1:J52 中的任何位置,还是要检查 A1 文本是否等于 J1 文本?
-
如果存在,则返回计数。
-
两者混合,只是因为除了使用 VBA 之外,我想不出任何其他方法来计算彩色单元格。如果有办法做我需要的事情(匹配名称并计算彩色单元格)而不使用 VBA,那么我一定会试一试。