Уважаемые форумчане, прошу вашей помощи или подсказки. Упражняюсь в написании макросов. Делаю график. В рукопашную проставляю даты начала работ в столбце "С", в столбце "В" окончание работ. Потом, с помощью макроса, ищу наистарейшую дату в столбце "С" и наисвежайшую в столбце "B" после чего высчитываю разницу (количество дней) между двумя датами. Теперь, мне требуется проставить даты от наистарейшей до наисвежайшей в строчку (по горизонтали) начиная со столбца "J" с возможностью указать шаг 1 день, 30 дней и т.д. Пробовал использовать цикл For Next, получилась фигня. Может неправильно пробовал. Буду категорически благодарен за подсказку в решении моего вопроса. Файл прикрепил.
Уважаемые форумчане, прошу вашей помощи или подсказки. Упражняюсь в написании макросов. Делаю график. В рукопашную проставляю даты начала работ в столбце "С", в столбце "В" окончание работ. Потом, с помощью макроса, ищу наистарейшую дату в столбце "С" и наисвежайшую в столбце "B" после чего высчитываю разницу (количество дней) между двумя датами. Теперь, мне требуется проставить даты от наистарейшей до наисвежайшей в строчку (по горизонтали) начиная со столбца "J" с возможностью указать шаг 1 день, 30 дней и т.д. Пробовал использовать цикл For Next, получилась фигня. Может неправильно пробовал. Буду категорически благодарен за подсказку в решении моего вопроса. Файл прикрепил.ni4esse
Sub Grafik() y = InputBox("Шаг", , 1) If Not IsNumeric(y) Then Exit Sub Application.ScreenUpdating = False x = Cells(1, Columns.Count).End(xlToLeft).Column If x > 5 Then Range(Cells(1, 6), Cells(1, x)).Delete Shift:=xlToLeft a = Cells(Rows.Count, "c").End(xlUp).Row b = Application.Min(Range("c2:c" & a)) c = Application.Max(Range("d2:d" & a)) f = c - b + 1 d = Application.RoundUp(f / y, 0) Range("f1") = f Range("g1") = c Range("h1") = b Range("g1:h1").Font.Size = 9 Range("g1:h1").NumberFormat = "m/d/yyyy" For e = 1 To d Cells(1, 9 + e) = b + e * y - y Cells(1, 9 + e).Font.Size = 9 Cells(1, 9 + e).NumberFormat = "m/d/yyyy" Next Application.ScreenUpdating = True End Sub
[/vba]наверно
как-то так [vba]
Код
Sub Grafik() y = InputBox("Шаг", , 1) If Not IsNumeric(y) Then Exit Sub Application.ScreenUpdating = False x = Cells(1, Columns.Count).End(xlToLeft).Column If x > 5 Then Range(Cells(1, 6), Cells(1, x)).Delete Shift:=xlToLeft a = Cells(Rows.Count, "c").End(xlUp).Row b = Application.Min(Range("c2:c" & a)) c = Application.Max(Range("d2:d" & a)) f = c - b + 1 d = Application.RoundUp(f / y, 0) Range("f1") = f Range("g1") = c Range("h1") = b Range("g1:h1").Font.Size = 9 Range("g1:h1").NumberFormat = "m/d/yyyy" For e = 1 To d Cells(1, 9 + e) = b + e * y - y Cells(1, 9 + e).Font.Size = 9 Cells(1, 9 + e).NumberFormat = "m/d/yyyy" Next Application.ScreenUpdating = True End Sub