Вставить формулу в ячейку при изменении цвета текста

Написал формулу на VBA - суммирование значений в зависимости от цвета текста

Public Function SumByColor(pRange1 As Range, CodeColor As Double) As Double 

Application.Volatile
Dim rng As Range
Dim xTotal As Double
xTotal = 0

For Each rng In pRange1
    If rng.Font.Color = CodeColor Then
        xTotal = xTotal + rng.Value
    End If
Next
SumByColor = xTotal
End Function

Формула работает в момент когда, меняются значения или вставки в ячейку. Значения записаны в 4 столбцах

Попробовал Private Sub Worksheet_Change(ByVal Target As Range) для изменения формулы SumByColor он срабатывает только при изменении значения, а при изменении цвета текста нет

Написал вот такой код, только он работаете через раз

Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Static OldSelection As Range
Static OldColorIndex As Long
Static numRow As Long
Static rng As String
If OldSelection = ActiveCell Then
    If OldColorIndex <> Selection.Font.Color Then
        Range("AR" & numRow).Formula = "=SumByColor(" & rng & ";255)"
        Range("AS" & numRow).Formula = "=SumByColor(" & rng & ";0)"
        OldSelection = ActiveCell
        numRow = OldSelection.Row
        rng = "$AI" & numRow & ":AL" & numRow
        OldColorIndex = Selection.Font.Color
    End If
Else
    OldSelection = ActiveCell
    numRow = OldSelection.Row
    rng = "$AI" & numRow & ":AL" & numRow
    OldColorIndex = Selection.Font.Color
End If
End Sub

Какие есть способы, что бы вставить формулу в другую ячейку при изменении цвета


Ответы (0 шт):