Выполнение обратного цикла в Excel VBA, ища последнюю заполненную ячейку в определенном столбце. После обнаружения он должен выйти из цикла, но Exit For не работает и продолжает цикл полностью назад. Есть идеи?«Выход для» не работает
rewind:
' so we 're still "under", rollback to the right line
While Not Range("I" & a).Value = getsum
a = a - 1
On Error GoTo TryCatch
If Not Range("E" & a).Value = "" Then
Rows(a).Select
currfield = Range("E" & a).Value
runningstrsum = runningstrsum - currentstrsum 'we're switching streets
' and since we just lost currentstrsum, we have to reset it to the last one, yay
For c = a - 1 To 2 Step -1
If Not Range("E" & c).Value = "" Then 'there it is
currentstrsum = Range("E" & c).Value
Exit For
End If
Next c
End If
Wend
If overunder < 0 Then 'go back to overunder<
GoTo goodjobunder
ElseIf overunder = 0 Then
GoTo goodjobeven
End If
Великого ответа, нет необходимости в цикле, чтобы найти последнюю ячейку. В качестве побочной заметки вы можете выйти из нескольких циклов, настроив «флаги», чтобы сообщить процессу о выходе из другого цикла. Поиск вокруг здесь должен дать несколько результатов. – Kyle
Вы также можете использовать оператор GoTo с меткой, но это может вызвать больше путаницы, чем цикл, если он не используется должным образом :) –