Я прочитал существующие вопросы, но никакой ответ, казалось, не помог. У меня есть функция, которую я написал в VB, которая оценивает сумму ячеек в определенном диапазоне по цвету шрифта, все это хорошо работает, когда я набираю функцию (оценка верна).
Но когда я меняю цвет одной ячейки (ячейки, находящейся в диапазоне функции), значение суммы вообще не меняется. Он изменяется только (в этой определенной ячейке), когда я снова вхожу в функцию (мне не нужно полностью стирать, я просто должен снова нажать клавишу ввода, когда отмечаю функцию).
В чем может быть проблема? Все настройки кажутся нормальными, и я попытался открыть новый лист, но проблема настаивает.
Замечания:
Ctrl + Alt + F9 работает, но Application.Volatile
нет (хотя я в Excel 2013).
Вот мой код в любом случае (хотя он работает):
Public Function SumByColor(rng As Range, clr As String) As Double
Application.Volatile
Dim s As Double
s = 0
Dim r As Range
Dim c As Long
If clr = "red" Then
c = RGB(256, 0, 0)
End If
If clr = "black" Then
c = RGB(0, 0, 0)
End If
For Each r In rng
If r.Font.Color = c Then
s = s + r.Value
End If
Next r
SumByColor = s
End Function