Как сделать цикл VBA

Реально же сделать цикл внесения данных в ячейки: "0-100 100-200 200-300 300-400 400-0" это данные вносимые вниз в столбец

Где: "0-" - константа, "100" - переменная, вводимая пользователем.

Может быть и так:

"0-300 300-600 600-0" это данные вносимые вниз в столбец

Sub SumRows()

'переменные
Dim sSunRows As Single
Dim d As Single
Dim sAreaRows As Single
myPi = WorksheetFunction.Pi
d = Trim(Worksheets("Строка").Range("O2").Value)


'тело
sAreaRows = Application.InputBox("Введите max дефектуемый участок")
sSunRows = d * myPi / sAreaRows
sSunRows = WorksheetFunction.RoundDown(sSunRows, 0) - 2
Range("B14").EntireRow.Offset(1).Resize(sSunRows).Insert Shift:=xlDown
b = 14 + sSunRows + 1

For I = 14 To b
Range("I" & I & ":" & "J" & I).MergeCells = True
Next

Range("I" & "14" & ":" & "J" & "14").Value = "0-" & sAreaRows

For I = 15 To b
Range("I" & I & ":" & "J" & I).Value = sAreaRows & "-" & sAreaRows + sAreaRows
Next
End Sub

Застрял я в последних 4 строках


Ответы (1 шт):

Автор решения: Nevod

Такое чувство, что ваша проблема заключается в том, как правильно собрать алгоритм вывода последовательности. От нуля и до конца массива с шагом sAreaRows.

Где: sAreaRows - значение, определяемое пользователем.

Попробую угадать:

Dim sLeft: sLeft = 0
For I = 15 To b
    Dim sRight: sRight = sLeft + sAreaRows
    If I = b Then sRight = 0
    Range("I" & I).Value = sLeft & "-" & sRight
    sLeft = sLeft + sAreaRows
Next

И ещё, вам достаточно заполнить левую ячейку среди объединённых, т.е. столбец I.

→ Ссылка