Я хочу использовать vba, чтобы проверить, имеет ли текст в ячейке в Excel определенный цвет, скажем, красный. Есть идеи?

1 ответ1

7

Я хочу использовать VBA, чтобы проверить, имеет ли текст в ячейке в Excel определенного цвета

скажем, красный

Вы можете использовать Font.ColorIndex

Смотрите ниже пример.

Для получения цвета ячейки используйте:

=GetFontColor(A1)

VBA - Получить функцию цвета шрифта

Когда на наших листах есть цвета, и мы хотим, например, подсчитать, сколько «красных» слов у нас на листе, это невозможно, потому что в Excel нет формулы для проверки цветов шрифта. Вместо этого мы можем создать нашу собственную функцию VBA, чтобы получить цвет шрифта. Это очень простой код. Вы должны вставить его в модуль VBA на вашем листе.

Function GetFontColor(ByVal Target As Range) As Integer
    GetFontColor = Target.Font.ColorIndex
End Function

Тогда вы можете использовать его на своем листе так:

=GetFontColor(A2)

Ниже приведен пример того, как вы можете использовать эту функцию. В столбце C мы поместили цвет шрифта текста в столбец A.

альт

Для подсчета количества «красных» слов в столбце А мы можем использовать:

COUNTIF(C2:C9,3)

3 в формуле относится к красному цвету.

Source VBA - Получить функцию цвета шрифта. Скрипт был изменен в соответствии с требованиями вопроса.


Что делать, если я хочу цвет клетки?

Используйте следующую функцию:

Function GetCellColor(ByVal Target As Range) As Integer
    GetCellColor = Target.Interior.ColorIndex
End Function

Для получения цвета ячейки используйте:

=GetCellColor(A1)

Исходные суммы ячеек на основе цвета фона. Скрипт был изменен в соответствии с требованиями вопроса.


Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .