Страницы: 1
RSS
Как инкрементировать дату?!
 
Всем привет!  
Подскажите, как можно инрементировать дату на VBA  
что было так:  
 
         янв.12    фев.12   мар.12  и до значения указанного в ячейке(допустим 1 год)  
 
Я делаю так  
 
Dim r1 As Range  
Dim dt As Date  
Dim i As Integer  
 
Set r1 = Range("A1")  
r1.NumberFormat = "mmm-yy"  
 
dt = #1/1/2012#  
 
for i = 1 to (сколько задано лет)  
r1.Select  
r1.FormulaR1C1 = dt  
Set r1 = r1.Offset(0, 1)  
next  
 
Получается так:  
создается именно столько сколько надо ячеек, но везде пишется янв.12  
почему не инкрементируется дата?!  
 
 
AutoFill не поможет, т.к. не понятно до какой ячейки автофилить.  
Если мой способ вообще не должен работать, то подскажите, как вообще можно решить мою задачу.  
 
Дано:  
Начал мес    март - значения меняются  
Начал год    2012 - значения меняются  
Срок проекта 2    - значения меняются  
 
Ннадо:  
 
Мар.12   Апр.12 .... Фев.14
 
> почему не инкрементируется дата?!  
 
А где у Вас в цикле dt=dt+(чтонибудь) ?
 
А при использовании  
FormulaR1C1  
и  
r1 = r1.Offset()  
не должен ли инкрементироваться в дате #1/1/2012# первый символ?!  
Вообще у меня случайно как-то получилось(Наподобии AutoFill), но начал подчищать мусор и видимо что-то удалил ((((  
Терь не пойму как у меня так получилось  
 
 
а если увеличивать месяц, то что можно добавить ?! перевести дату в общей формат и добавить 30?! Тока дней где-то 30, где-то 31
 
Не должен.  
Можно использовать Прогрессию:  
 
Sub Макрос1()  
With Range("A1")  
   .Value = CDate("март 2012")  
   .NumberFormat = "mmm-yy"  
   .DataSeries Rowcol:=xlRows, Type:=xlChronological, Date:=xlMonth _  
       , Step:=1, Stop:=CDate("фев 2014"), Trend:=False  
End With  
End Sub
 
Казанский, спасибо!  
Все-таки буду делать по старинке - всякими счетчиками(for, while). Потому как надо еще добавлять вывод по месяцам, кварталам и годам, а также использовать эту процедуру не только для даты.
Страницы: 1
Читают тему
Наверх