2016-08-03 25 views
3

条件付き書式設定で実際に動作する関数を実行する人はいますか?カスタムエクセル式関数UDFを条件付き書式設定する

が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 

答えて

3

をで動作している

(手動ですべてのものを選択する必要があります)に基づく式ではありません@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 
を0

ワークシートの使用例:

=WrapCountReds("A1:A100") 
+1

興味深い。私は、Evaluateをラッパー関数として使うことは決して考えなかったでしょう。 – Comintern

+1

@Comintern関連:https://stackoverflow.com/questions/23433096/using-a-udf-in-excel-to-update-the-worksheet/23437280#23437280 –

関連する問題