Murali имеет большой рабочий лист, содержащий множество различных форматов. Он хотел бы использовать условное форматирование, чтобы выделить ячейки, содержащие даты. Однако он не знает, как правильно настроить условный формат.

Проблема в том, что в Excel нет функции листа, которая возвращает, содержит ли конкретная ячейка дату или нет. К счастью, VBA включает такую ​​функцию IsDate. Это означает, что вы можете создать очень простую пользовательскую функцию, возвращающую True или False, в зависимости от того, содержит ли ячейка дату:

Function MyIsDate(rCell As Range)

MyIsDate = IsDate(rCell)

End Function

Затем вы можете ссылаться на эту функцию в правиле условного форматирования и настраивать форматирование на основе результатов. Помните, что эта функция возвращает True, если ячейка содержит любую дату; он не проверяет конкретные даты.

Если по какой-то причине вы не хотите использовать макрос, вы можете попробовать этот небольшой обходной путь: настройте правило условного форматирования, основанное на результатах формулы. Конкретная формула, которую вы должны использовать, выглядит следующим образом:

=LEFT(CELL("format",A1))="D"

Формула возвращает код формата, используемый для ячейки. (В данном случае это ячейка A1. Измените ее, чтобы отразить ячейку, которую вы фактически тестируете.)

Если первый символ кода формата — D, формула возвращает True. Excel использует различные коды форматов, которые начинаются с буквы D, когда вы форматируете ячейку как дату.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (11817) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.