Я знаю, что "программирование" в excel не очень популярно среди коллег-программистов, однако я изо всех сил пытался понять это правильно, и управление у меня на шее ..
У меня есть пользовательская проверка в Excel:
=AND(LEN(AV15)=10,((VALUE(LEFT(AV15,2)))<=31),NOT(ISERROR(VALUE(LEFT(AV15,2)))),MID(AV15,3,1)="/",((VALUE(MID(AV15,4,2)))<=12),NOT(ISERROR(VALUE(MID(AV15,4,2)))),MID(AV15,6,1)="/",((VALUE(RIGHT(AV15,4)))<=2100),NOT(ISERROR(VALUE(RIGHT(AV15,4)))))
Приведенная выше проверка должна принимать любую действительную дату в формате:
dd/mm/yyyy
Кажется, что он работает частично, но каким-то образом он не примет день меньше 12, например:
14/12/2010 -->accepted
13/10/2010 -->accepted
25/10/2010 -->accepted
12/10/2010 -->gives error
На первый взгляд можно заметить, что ((VALUE(MID(AV15,4,2)))<=12)
вызывает такое поведение, но я изменил его на 31, и я все еще получаю сообщение об ошибке, мне нужна проверка для допуска входных данных в:
nn/nn/nnnn
, где "n" - это число, мне все равно, если они введут 99/99/9999. Позже я могу проверить это на коде vba, но для ввода необходимо указать 10 символов.
любая помощь будет высоко ценится