У меня есть столбец текста, в котором некоторые символы (не ячейки) выделены красным шрифтом. Есть ли способ выделить ячейки, которые содержат красные символы с помощью условного форматирования? Решения VBA также подойдут.
2 ответа
Мне неизвестно о каких-либо встроенных функциях, которые проверяют индивидуальный цвет каждого символа в ячейке, однако вы можете написать его в VBA.
Эта функция будет перебирать каждый символ и возвращать true, если один из символов красный. Обратите внимание: этот код работает только на стандартном красном, который доступен, он не будет работать на всех оттенках.
'Only works on the standard Red Colour
Function ContainsRed(CellCheck As Range) As Boolean
For i = 1 To Len(CellCheck.Value) Step 1
If CellCheck.Characters(i, 1).Font.Color = vbRed Then
ContainsRed = True
Exit Function
End If
Next i
ContainsRed = False
End Function
После создания формулы вы можете создать новое правило форматирования. Нажмите на домашнюю вкладку, условное форматирование, новое правило.
Для использования с колонкой A
Выберите последний параметр «Использовать формулу, чтобы определить, какие ячейки форматировать» и используйте формулу, подобную этой: = ContainsRed(A2)
Нажмите Ok и измените применения к Применимо к нужному столбцу, в данном случае это будет $ A: $ A.
Справку по условному форматированию можно найти здесь.
Set ws = Sheets("Cost Analysis compare")
For r = 1 To 104
For c = 1 To 36
If (ws.Cells(r, c).Font.Color = 255) Then
ws.Cells(r, c).Interior.ColorIndex = 44
End If
Next c
Next r