【问题标题】:Custom excel formula function UDF to count Conditional Formatting自定义excel公式函数UDF来计算条件格式
【发布时间】:2016-12-09 14:11:27
【问题描述】:

有没有人遇到过一个真正适用于条件格式的函数?

kutools 和 albebits 有一些插件,但它们不是基于公式的(您必须手动选择所有内容)

我找到了这个,但仅适用于手动格式化

Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rColor.Interior.ColorIndex
If SUM = True Then
   For Each rCell In rRange
    If rCell.Interior.ColorIndex = lCol Then
            vResult = WorksheetFunction.SUM(rCell) + vResult
    End If
   Next rCell
Else
    For Each rCell In rRange
    If rCell.Interior.ColorIndex = lCol Then
            vResult = 1 + vResult
    End If
   Next rCell
End If
ColorFunction = vResult
End Function

【问题讨论】:

    标签: excel vba function udf


    【解决方案1】:

    继@Jeeped 和@Comintern...

    这对我有用 - 一个简化的例子:

    Function WrapCountReds(rRange)
        WrapCountReds = rRange.Parent.Evaluate("CountReds(" & _
                              rRange.Address(False, False) & ")")
    End Function
    
    'can't call this directly from a worksheet but can be called via evaluate
    Public Function CountReds(rRange As Range)
    
        Dim rCell As Range
        Dim vResult
    
        For Each rCell In rRange
          If rCell.DisplayFormat.Interior.ColorIndex = 3 Then
                 vResult = 1 + vResult
          End If
        Next rCell
    
        CountReds = vResult
    End Function
    

    工作表使用示例:

    =WrapCountReds("A1:A100")
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多