Страницы: 1
RSS
VBA: Получить дату на несколько месяцев меньшую от заданой
 
Здравствуйте  
 
Вопрос в заглавии.  
Если месяц находится в томже году, что и заданный - нет проблем.  
Делаю так (кпримеру)  
 
 Sub ttt()  
 
   iYear = Year(Now()) 'год  
   iMonth = Month(Now()) 'месяц  
   iDay = DateSerial(iYear, iMonth + 1, 1) - 1 'последний день месяца  
 
   n = Application.InputBox("Введите количество месяцев", "Окно ввода", "1") ' количество месяцев назад  
 
   iiDay = DateSerial(iYear, iMonth + 1 - n, 1) - 1 'последний день месяца необходимой даты  
 
   MsgBox "iDay = " & iDay & "    iiDay = " & iiDay  
 
 End Sub  
 
Если месяц находится в другом году - есть проблема.  
Подскажите, пожалуйста, а то мозги закипают.  ;(
 
смотрите функцию dateadd  
x= dateadd("m", -25, Date)
 
{quote}{login=}{date=01.08.2012 11:49}{thema=}{post}смотрите функцию dateadd  
x= dateadd("m", -25, Date){/post}{/quote}  
Тю...!  
Все , простите за безпокойство.  
Спасибо, вопрос решен!
 
Ещё:  
x = Date  
MsgBox DateSerial(Year(x), Month(x) - 5, Day(x)), , "DateSerial"  
-5 количество месяцев "назад"
 
Юрий М, большое спасибо. И так работает, как Вы предложили, но для моего случая удобнее формула    
x= dateadd("m", -25, Date)  
Все равно спасибо.
Страницы: 1
Наверх