Обновить
5
0
Шибанов Фёдор@Fredcapit

Пользователь

Отправить сообщение
По поводу скорости работы как приоритет я имел ввиду, то, что в других источниках я видел, как аналогичный показатель рассчитывается с помощью итераций (т.е. каждый год в промежутке проверялся на високосность), а мне захотелось это немного оптимизировать (вдруг кому захочется считать много таких формул, разность в скорости тогда может быть очень заметной).
Про «читаемость». Я понимаю, что многие не разбираются в коде VBA, но именно в формуле гораздо удобнее использовать имя формулы с двумя параметрами, чем такую длинную формулу, смысл которой можно забыть, а также сложно проследить целостность. Также могу из личного опыта сказать, что подавляющее большинство (может 99 из 100) пользователей, также ничего не поймут в этой длинной формуле.
Ваша формула, указанная в конечном результате, видимо, не полная и, как мне кажется, возвращает только количество лет, а не дней.
Спасибо за развёрнутый комментарий. Действительно, многое можно упростить.
На Гитхабе я обновил код VBA на более простой по логике, расчёта високосных лет в промежутке между годом начала и годом конца периода (не включая эти годы), которую Вы описали.
Реализация логики в формуле Excel мне не нравится, так как делает формулу нечитаемой, поэтому я решил реализовать её как пользовательскую функцию на VBA.
В пунктах 2 и 3 я не совсем понял, что Вы рассчитываете.
Моя функция возвращает именно количество дней, а не лет.
Согласен. Но в данном случае переменной d_begin присваивается значение даты и она становится с типом Date
2

Информация

В рейтинге
Не участвует
Откуда
Богородск, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность