У меня есть функция в VBA, чтобы циклически проходить через диапазон ячеек и добавлять их до тех пор, пока общее значение не станет равным установленному максимуму, что я хотел бы сделать, это установить цвет фона всех ячеек, которые используется в сумме.
Например:
A, B, C, D, E, F, G, H
1, 2, 3, 4, 5, , 5, =SumToValue(A1:E1, G1)
Это вернет 3 как 1 + 2 = 3, 3 + 3 = 6, что выше максимума 5.
Вот код:
Function SumToValue(area As range, max As range)
Application.Volatile
Dim total As Long
total = 0
For Each cell In area
If (WorksheetFunction.Sum(cell, total) <= max) Then
total = WorksheetFunction.Sum(cell, total)
Else
Exit For
End If
Next cell
SumToValue = total
End Function
Так что мне нужно установить цвет фона A1 и B1, как они были рассчитаны. Однако если я попытаюсь добавить cell.Interior.ColorIndex = 50
внутри цикла, то получу ошибку Value
из формулы.
Есть ли способ сделать это или функции не могут быть использованы таким образом?