Excel VBA - Цветной текст в ячейке, если какой-либо текст ячейки в диапазоне окрашен - PullRequest
0 голосов
/ 18 января 2019

Я сделал функцию, которая считает красные текстовые ячейки в диапазоне.

Function CountRed(rngToSearch) As Long

Dim rngCel As Range

For Each rngCel In rngToSearch
    If rngCel.Font.Colorindex = 3 Then
        CountRed = CountRed + 1
    End If
Next rngCel

End Function

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

Вот что я получил:

Function SumR(rngToSum) As Long

Dim rngCel As Range
Dim IsThereRed

IsThereRed = 0

For Each rngCel In rngToSum
    If rngCel.Font.Colorindex = 3 Then
        IsThereRed = 1
    End If
Next rngCel

SumR = Application.WorksheetFunction.Sum(Range(rngToSum))

If IsThereRed = 1 Then SumR.Font.Colorindex = 3

End Function

Но я получаю ошибку. Есть ли способ, чтобы это могло работать с функцией?

1 Ответ

0 голосов
/ 18 января 2019

Чтобы назначить цвет шрифта, вам нужно определить диапазон для этого. В этом случае вы можете определить диапазон, в котором ваш результат (SumR) будет показан на листе.

Допустим, ваш результат будет в ячейке A10. Сначала вы помещаете свой результат в эту ячейку, а затем раскрашиваете нужный шрифт:

With Range("A10")
.Value2 = SumR
.Font.Color = RGB(255,0,0)
.NumberFormat = "#,##0" 'if you want to have a specific format for the number
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...