Страницы: 1
RSS
Последний день месяца
 
Какой функцией на VBA вернуть последний день месяца?
 
обязательно VBA?  
есть стандартная
 
Dim iLastDay As Integer  
iLastDay = Day(DateSerial(2010, 5, 1) - 1)  
iLastDay = Day(DateSerial(Year(Now), Month(Now), 1) - 1)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо!
 
=КОНМЕСЯЦА(СЕГОДНЯ();0)
 
Владимир, читаем вопрос:  
{quote}{login=NIKOLASCS}{date=02.04.2010 07:19}{thema=Последний день месяца}{post}Какой функцией на VBA вернуть последний день месяца?{/post}{/quote}  
VBA нужно.
 
Я не умею их писать...
 
Зачем тогда отвечаете? Формулы не просили.
 
{quote}{login=Юрий М}{date=02.04.2010 02:00}{thema=}{post}Зачем тогда отвечаете? Формулы не просили.{/post}{/quote}  
Часто бывает, что спрашивающий не подозревает, что требуемое можно сделать без макросов, поэтому лищний пример не помешает. И вдруг потомкам... :)
 
{quote}{login=vikttur}{date=02.04.2010 05:20}{thema=Re: }{post}Часто бывает, что спрашивающий не подозревает, что требуемое можно сделать без макросов, поэтому лищний пример не помешает. И вдруг потомкам... :){/post}{/quote}  
Если потомкам, то надо пояснить, что КОНМЕСЯЦА появится только установки пакета анализа :-)
 
У потомков она будет вшита. В подсознание :)
 
У нас каждый десятый только знает, чего хочет, вот и предлагаются возможные варианты...    
---  
Если подойдет функция, то и о пакете анализа расскажем.
 
Если при помощи предложенной функции вычислять последний день  
то получается что последний день мая 2012 года - 30!  
Как можно исправить эту функцию чтобы считать правильно?  
Dim iLastDay As Integer  
iLastDay = Day(DateSerial(2011, 5, 1) - 1)
 
Узнаем последнее число следующего месяца  
1) x = Dateadd("m",1,Date) '- вспомогательная дата должна быть на один месяц больше интересующего нас месяца  
2) lastDate = Dateserial(Year(x), Month(x),0) 'дата последнего числа интересущего месяца  
3) DayinMonth = Day(lastDate) 'цифра-результат
 
т.о для мая  
x = "01.06.2012"  
lastDate = Dateserial(Year(x), Month(x),0) '31/05/2012  
DayinMonth = Day(lastDate) '31
 
Спасибо за быстрый ответ. Очень признателен.
Страницы: 1
Читают тему
Наверх