Здравствуйте, сразу к делу: нужно преобразовать данный код, чтобы он работал не только на первую строку, а на диапазон строк. Например до 10. Понимаю что скорее всего нужно взять это все в массив и использовать\внедрить For Each, но никак не получается разобраться. Заранее благодарен.
Код
Private Sub CommandButton1_Click()
Dim m As Integer
Dim x As Integer
Dim out As Integer
m = Cells(2, 1)
x = Cells(2, 2)
out = Cells(2, 3)
For i = m To x Step -x
If i > 0 Then
i = i - out
j = j + 1
End If
If I < 0 Then
i = i + out
Exit For
End If
Next i
Cells(2, 4) = j
Cells(2, 5) = j + 1
Cells(2, 6) = i
End Sub
а со скольки, например? Путь будет 2 - раз уж она в примере. Совет - изучайте циклы, это все же основа программирования
Код
Private Sub CommandButton1_Click()
Dim m As Integer
Dim x As Integer
Dim out As Integer
dim lr as long
for lr = 2 to 10
m = Cells(lr, 1)
x = Cells(lr, 2)
out = Cells(lr, 3)
For i = m To x Step -x
If i > 0 Then
i = i - out
j = j + 1
End If
If I < 0 Then
i = i + out
Exit For
End If
Next i
Cells(lr, 4) = j
Cells(lr, 5) = j + 1
Cells(lr, 6) = i
Next
End Sub
Сергей Тихомиров написал: чтобы он работал не только на первую строку,
Код
[URL=#]?[/URL] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Private Sub CommandButton1_Click() Dim m As Integer Dim x As Integer Dim out As Integer dim lr as long for lr = 2 to 10 m = Cells(lr, 1) x = Cells(lr, 2) out = Cells(lr, 3) For i = m To x Step -x If i > 0 Then i = i - out j = j + 1 End If If I < 0 Then i = i + out Exit For End If Next i Cells(lr, 4) = j Cells(lr, 5) = j + 1 Cells(lr, 6) = i Next End Sub
Вы правы, в моем вопросе много недочетов, не много голова уже перегружена сегодня. Ваш код, к сожалению, не работает, ругается.