У меня диапазон "A1: B10". Я хочу применить условное форматирование к диапазону A1: A10 таким образом, чтобы если ячейка B в этой строке содержала текст «ok», применила некоторый формат к ячейке A в этой строке.
Пример:
A B
text ok
text other text
text ok
ячейки A1 и A3 будут отформатированы в соответствии с настройкой условного форматирования. Я понимаю, как использовать FormatConditions.Add, когда дело доходит до тестирования тех же ячеек, которые я хочу отформатировать, но не когда это основано на условии в других ячейках.
Спасибо
Я привел простой пример, чтобы понять, как использовать formatConditions. В моем макросе условия намного сложнее, и запись доставляет мне слишком много беспорядка
Чтобы основывать условное форматирование на других ячейках, укажите ссылку на другие ячейки в формуле.
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(ISERROR(SEARCH(""ok"", B1)))"
Функция смещения также работает в формуле.
Range("A:A").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=OFFSET(A1, 0, 1) = "ok""
Ссылаясь на ячейки, отличные от форматируемой, обратите внимание на абсолютно-относительные ссылки.
Также обратите внимание на двойные кавычки, экранирующие кавычки.
Range("A1:B3").FormatConditions.Add Type:=xlExpression, Formula1: = "=$B1 = ""ok"""
Вы ведь знаете, что для этого вам не нужен VBA, верно? Условное форматирование знает это по умолчанию, так почему бы просто не записать макрос во время его настройки?