(Предполагается, что вы имели в виду VBA, поскольку говорите, что «работаете в макросе Excel»)
Вот как вы можете сгенерировать массив дат для каждого дня в конкретном месяце (недостаточно информации, чтобы предложитькакой формат вы хотите, поэтому я предполагаю массив дат).
Sub GenerateDates()
Dim Days() As Date
Dim DaysInMonth As Long, i As Long
Dim Year As Long, Month As Long
' Example: Feb, 2006 (leap year)
Year = 1996
Month = 2
DaysInMonth = DateSerial(Year, Month + 1, 1) - _
DateSerial(Year, Month, 1)
ReDim Days(1 To DaysInMonth)
For i = 1 To DaysInMonth
Days(i) = DateSerial(Year, Month, i)
Next
'Do as you wish with the array of 29 days
End Sub
Как это работает: Вы можете получить количество дней в месяце, используя приведенную выше математику dateserial.Это гарантирует, что вы получите правильное количество дней, даже учитывая високосные годы.Тогда вы просто переделаете свой массив дней и заполните массив!