У меня есть один цикл в другой, но они не работают, как я ожидал - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь поместить один цикл с именем j в другой, который называется i.В одном из способов я попытался завершить цикл j перед циклом i и каждый раз копировать одно и то же число, потому что цикл i не продвигается.

For i = 2 To lastRowK
    For j = 5 To 500
    If Worksheets(1).Cells(i, 5).Value = 7 Then
        Worksheets(2).Cells(j, 6).Value = Worksheets(1).Cells(i, 1).Value
    Next j
Next i

В другом варианте я попыталсяпоставить условное для Next j, но это дает мне ошибку компиляции: Next без for.

For i = 2 To lastRowK
    For j = 5 To 500
    If Worksheets(1).Cells(i, 5).Value = 7 Then
        Worksheets(2).Cells(j, 6).Value = Worksheets(1).Cells(i, 1).Value
    If KRData.Cells(i, 5).Value = 7 Then _
    Next j
Next i

Третий вариант, который я пробовал, состоит в том, чтобы поместить оба из next в условное выражение, но этовозвращает ошибку компиляции: ожидаемый разделитель списка или конец оператора.

For i = 2 To lastRowK
    For j = 5 To 500
    If Worksheets(1).Cells(i, 5).Value = 7 Then
        Worksheets(2).Cells(j, 6).Value = Worksheets(1).Cells(i, 1).Value
    If KRData.Cells(i, 5).Value = 7 Then _
    Next j AND Next i

Кроме того, конец, если или не работает.

1 Ответ

0 голосов
/ 06 мая 2019

Убедитесь, что ваше To значение lastRowK установлено до начала цикла. Если его значение меньше начального значения, в вашем случае 2 выражение вычислит значение false и завершит цикл.

For i = 0 To 3
Next i

Будет зацикливаться до тех пор, пока i = 4. Затем он завершит цикл и возобновит выполнение со следующей строки кода, следующей за оператором Next.

For i = 2 To 1
Next i 

В этом примере цикл немедленно завершится и перейдет к первой строке кода, предшествующей следующему оператору. Я был бы готов поспорить, если вы поставите точку останова при инициализации вашего цикла и проверите локальные переменные в меню инструментов, вы увидите, что lasRowK имеет значение Empty или меньше, чем равно 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...