Прескочи към основното съдържание Прескочи към навигацията
Въпрос към урок: Функции на VBA от курс: VBA за Excel

Как да изчислим по дата и брой месеци нова дата?

Microsoft Excel Електронни таблици Microsoft 365 Excel VBA Програмиране VBA за Excel

Здравейте, в този урок видяхме как да изчислим колко дни/месеци/години има между две дати - datedif (start date, end date, "d/m/y"). Интересува ме има ли лесен начин по дадена начална дата и брой месеци как да се получи втората дата? (наивните идеи да третирам датите като числа и да добавя 30 или 31 за да получа цял месец не са коректни заради особеностите на февруари + високосните години). Текущото ми решение "наивно" (и за съжаление прекалено бавно, а подобни сметки ми се налага да правя с хиляди дати): към началната дата добавям броя месеци * 30. След това пускам while цикъл и докато не излезне точна калкулация между "старт дата" и "край дата" (ползвайки datedif(startdate, enddate, "m") добавям +1 към краяната дата ... * втората версия на този скрипт е да на първата итерация добавям броя месеците/2 -1 (отчитам че ~50% от месеците са 31 дни, а не 30). Благодаря предварително

Използвайте функцията EDATE. Ето как работи Екранна снимка от форума Екранна снимка от форума Лек ден и успехи!

Извинения, функцията е End Of Month -EOMONTH. Тя има същият синтаксис. Ето пример: Екранна снимка от форума Лек ден!

Функцията EOMONTH показва, за съжаление, последния ден от месеца, който сме избрали!

Екранна снимка от форума Екранна снимка от форума Екранна снимка от форума Екранна снимка от форума Лек ден!

Едно допълнение към подробните обяснения на инж. Никола Петров

Екранна снимка от форума

Екранна снимка от форума

Супер красиво и елегантно решение ... Благодаря много!


Вашият отговор

Запиши се в Аула

или
Вашият имейл е защитен при нас.