VBA对与颜色和特定文本匹配的单元格进行计数



我正在尝试获取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

希望对您有所帮助。

  1. 将代码复制并粘贴到模块中。

  2. 选择要获得结果的单元格

  3. 使用此函数作为常用函数

  4. 第一个参数是
  5. 您要计数的范围,第二个参数是要比较的具有 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
    

相关内容

  • 没有找到相关文章

最新更新