Страницы: 1
RSS
Цикл For для нескольких строк
 
Здравствуйте, сразу к делу: нужно преобразовать данный код, чтобы он работал не только на первую строку, а на диапазон строк. Например до 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
Изменено: Сергей Тихомиров - 22.11.2022 14:27:51
 
Цитата
Сергей Тихомиров написал:
чтобы он работал не только на первую строку,
я больше скажу - он сейчас даже на первую не работает...Только на вторую :)
Цитата
Сергей Тихомиров написал:
Например до 10
а со скольки, например? Путь будет 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
Изменено: Дмитрий(The_Prist) Щербаков - 22.11.2022 14:44:17
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
Цитата
Сергей Тихомиров написал:
чтобы он работал не только на первую строку,
Код
    [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   
 
Вы правы, в моем вопросе много недочетов, не много голова уже перегружена сегодня. Ваш код, к сожалению, не работает, ругается.  
 
Все разобрался, вопрос решен. Спасибо
Страницы: 1
Наверх