Я хочу использовать vba, чтобы проверить, имеет ли текст в ячейке в Excel определенный цвет, скажем, красный. Есть идеи?
1 ответ
Я хочу использовать 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)
Исходные суммы ячеек на основе цвета фона. Скрипт был изменен в соответствии с требованиями вопроса.