Не соображу, как изменить размерность двумерного массива.
Сначала ReDim задавал в цикле и удивлялся, почему на лист выводятся нули и только последнее значение :)
Позже вывел ReDim с максимумальной размерностью перед циклом.
На лист заносятся все даты с выбранным числом месяца (например, 15.??.??), которые попадают в период между двумя датами. Во второй столбец - единицы (позже будут и двойки, это пока не важно).
Dim ArrM() As Date, nath As Date, kon As Date
Dim dd As Date, day1 As Byte, i&
With Worksheets("Лист3")
nath = .Range("F1") ' начальная дата
kon = .Range("F2") ' конечная дата
day1 = .Range("G2") ' день месяца
End With
ReDim ArrM(1 To 20, 1 To 2)
i = 1
While DateSerial(Year(nath), Month(nath) + i - 1, day1) < kon
dd = DateSerial(Year(nath), Month(nath) + i - 1, day1)
' ReDim ArrM(1 To i, 1 To 2)
ArrM(i, 1) = dd
ArrM(i, 2) = 1
i = i + 1
Wend
'ReDim Preserve ArrM(1 To i, 1 To 2)
'ReDim Preserve ArrM(i)
Worksheets("Лист3").Range("A2"). _
Resize(UBound(ArrM, 1), UBound(ArrM, 2)).Value = ArrM
В таком варианте работает, но на лист выгружается лишнее (строки больше i).
Как правильно записать ReDim Preserve для двумерного массива?