我正在尝试获取VBA代码来计算单元格填充颜色和其中文本匹配的范围内的单元格。
我可以轻松地一次获得一个标准,但是每次我尝试组合条件时,我都会收到VALUE错误。请帮忙!
这是我所拥有的:
- G23-100 是范围
- F19 是要匹配的颜色和文本
.
Function CountColorValue()
Dim text As String
Dim cell As Range
For Each cell In Range("G23:G210")
If cell.Interior.ColorIndex = Range("F19").Interior.ColorIndex Then
If cell.text Like Range("F19").text Then
text = text + 1
End If
End If
Next cell
Cells(1, 2).Value = numbers
End Function
它不起作用,因此我在这里.. 提前感谢任何帮助。
你的函数实际上不是一个函数,而是一个例程,因为你没有输出。您有多个错误,我没有尝试就修复了,它应该可以工作,如果有,请在左上角将其标记为正确答案
Function CountColorValue() as integer
Dim iColor as long, cnt as long
Dim text As String, str as string
Dim cell As Range
iColor=Range("F19").Interior.ColorIndex
str=Range("F19").value
For Each cell In Range("G23:G210")
If cell.Interior.ColorIndex = iColor and cell.text Like str Then
cnt=cnt+1
End If
Next cell
CountColorValue=cnt
End Function
根据我的测试,请尝试以下VBA代码:
Option Explicit
Sub CountColorValue()
Dim text As Long
Dim cell As Range
For Each cell In Range("G23:G210")
If cell.Interior.ColorIndex = Range("F19").Interior.ColorIndex And cell.text Like Range("F19").text Then
text = text + 1
End If
Next cell
Range("A1").FormulaR1C1 = text
End Sub
希望对您有所帮助。
-
将代码复制并粘贴到模块中。
-
选择要获得结果的单元格
-
使用此函数作为常用函数
第一个参数是 您要计数的范围,第二个参数是要比较的具有 interior.color 的单元格,第三个参数是您要计算第一个参数范围内的函数的值或单元格。 例如 =CountColorValue(G23:G210,$F$19,$F$19( 或 =CountColorValue(G23:G210,$F$19,"a"(
Option Explicit Function CountColorValue(Rng_dt As Range, criteria As Range, Val As Variant) As Double Application.Volatile Dim datar As Range Dim xcolor As Long xcolor = criteria.Interior.Color For Each datar In Rng_dt If datar.Interior.Color = xcolor And WorksheetFunction.CountIf(datar, Val) = 1 Then CountColorValue = CountColorValue + 1 End If Next datar End Function