Как вы заметили, в Excel нет внутреннего представления значений в виде даты / времени - даты просто удваиваются с применением другого форматирования.Некоторые встроенные функции, такие как =TODAY()
, специально встроены в Excel и автоматически применяют форматирование даты.В Excel нет механизма для пользовательских функций, позволяющих использовать это специальное поведение.
Один из способов, хотя я бы не предложил, - это запустить макрос, который изменяет форматирование вызывающих ячеек после вычислениязавершено.Вы сохраняете, какие ячейки должны быть переформатированы (на основе Application.Caller / xlfCaller), и запускаете макрос, который изменяет форматы ячеек - либо из обработчика событий вычисления, либо по расписанию с помощью Application.OnTime.
Это довольно уродливо.