2015-09-25 2 views
1

Я написали код, который дает мне последовательность дат в форме «mmm yy» формат. например Янв 15.Генерирующая последовательность дат

For i = 1 To 20 
MsgBox Format(DateAdd("m", i, "01/01/2005"), "mmm") & " " & Right(Year(Date), 2) 
Next i 

Проблема, с которой я сталкиваюсь, заключается в том, что когда я продолжаю увеличивать год, это не меняется. Так, например, если я является , то он должен быть 6 января, но все это дает мне Jan 05 снова. Я хочу сгенерировать последовательность от Янв 05 до Сегодня, то есть Сен 15 Прошу совета.

+0

Что такое i = 1 до 20 для? Просто для отладки? – MatthewD

+0

@MatthewD Да, это просто отладка, как я могу идти вперед в течение месяцев. – Meesha

+0

Последняя часть, которую вы получаете в течение года, которая всегда будет 15. Измените последнюю часть на «Format (DateAdd (« m », i, «01/01/2005»), «yy») ' –

ответ

2

Создать переменную и добавить к этой дате.

Private Sub CommandButton1_Click() 
    Dim dDate As Date 
    Dim i As Integer 

    dDate = "01/01/2005" 

    For i = 1 To 20 
     MsgBox Format(dDate, "mmm") & " " & Right(Year(dDate), 2) 
     dDate = DateAdd("m", 1, dDate) 
    Next i 

End Sub 
2

Рассмотрим:

Sub oiudskfh() 
    For i = 1 To 20 
     Dim d As Date 
     d = DateAdd("m", i, "01/01/2015") 
     MsgBox Format(d, "mmm") & " " & Right(d, 2) 
    Next i 
End Sub