Можно ли условно отформатировать ячейку, если ячейка содержит формулу (чтобы предупредить себя и других пользователей при обновлении ячейки)?
Можно ли условно отформатировать ячейку, если ячейка содержит формулу (чтобы предупредить себя и других пользователей при обновлении ячейки)?
Ответы:
Вы можете использовать условное форматирование, чтобы сделать это, используя XLM и Range Names
У меня есть более длинная статья об использовании XLM с именами диапазонов и условным форматированием для автоматического форматирования электронных таблиц в соответствии с содержимым ячейки
xlm
без каких-либо предупреждений макросов, MSFT изменил подход безопасности.
Основываясь на ответе brettdj, потому что мне было трудно следить за связанной статьей:
=ISFORMULA(INDIRECT("rc",FALSE))
$1:$1048576
в качестве диапазона, к которому нужно применить. В противном случае вы можете ввести любой диапазон.Формула INDIRECT("rc",FALSE)
возвращает ссылку на текущую ячейку. Если я когда-либо использую это в листе, я создаю Определенное имя, называемое чем-то вроде, ThisCell
и использую это в формуле, на тот случай, если я когда-нибудь вернусь много лет спустя и подумаю «для чего, черт возьми, это?».
INDIRECT("rc",FALSE)
используйте относительную ссылку с верхней левой ячейкой в вашем условном формате «Применяется к» диапазону. Например, если ваш диапазон «Применяется к» =$A$3:$F$300
, используйте =ISFORMULA(A3)
. Это работает, потому что условное форматирование поддерживает относительные ссылки, см. Это
Вы можете попробовать это:
Создайте пользовательскую функцию с помощью следующего кода:
Function IsFormula(ByVal Ref As Range) As Variant
If Ref.Cells.Count > 1 Then
IsFormula = CVErr(xlErrNA)
Else
IsFormula = Ref.HasFormula
End If
End Function
Пример:
Чтобы проверить, имеют ли какие-либо ячейки в столбце A какие-либо формулы:
=IsFormula(A1)
Существует очень простой способ сделать это, протестированный в Excel 2016.
Выделите свой диапазон, к которому вы хотите применить это, скажем, от A3:W20
. Зайдите в условное форматирование и выберите NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT
.
Вставьте =isformula(A3)
и выберите формат, который вы хотите применить.
A3
Очевидно, это ссылка на первую ячейку в вашем диапазоне, но это форматирование применяется ко всем. В результате в пределах вашего диапазона любая ячейка, которая является формулой, имеет условный формат.
Новые справочные сайты рекомендуют пользовательскую функцию:
Function IsFormula(cell) as boolean
IsFormula = cell.HasFormula
End Function
Затем используйте эту функцию как ваше условие
А на самом деле Excel 2013 и более поздние версии имеют IsFormula
в качестве стандартной функции.
Вы также можете использовать условное форматирование:
=HasNoFormula
Протестировано с использованием Excel 2010.