[VBA]for if else next

Teteshnik

Собственно вопрос на который всегда хотел найти ответв цикле типа

For i=.....
If ...
Else Тут надо продолжить цикл со следующим значением i
End If
Next

Как осуществить этот переход красивее чем с goto. Ну и соответственно проще.Я читал обо всех предлагаемых способах оброботки ошибки, но чтобы вот цикл продолжить создавать пусть даже маленькую функцию - на мой взгляд это глупость. Хотя конечно лучше один раз её вставить и далее везде юзать. Но дело то принципа...

avvokado

Заменить (for i...) на (while (i < ... а где else просто добавлять ещё единичку к i не прокатит? :)

Teteshnik

Ну, да, не пойдет. Там чуток сложнее все

For i=.....
If ...
Else Тут надо продолжить цикл со следующим значением i
End If
For j...
Next j
Next i

И вот если Else, то ни в коем случае нельзя начинать For j

Teteshnik

Ну и да, засунуть For j под if тоже не вариант т.к. там чуток еще сложнее

hwh2010

попробуй Continue For

Teteshnik

continue впринципе нет

yolki

а ещё раз next i написать нельзя разве?

hwh2010

ыы, блин. Извини, я думал что раз в VB есть, то есть и в VBA. Тогда имхо не грех перед Next сделать метку continue_for и делать на неё goto. Ну или if'ами, но тогда возможно придётся извращаться с дополнительными булевскими переменными.

Teteshnik

Таки нет

Teteshnik

Да, я могу написать один раз обработчик ошибок. Но сначала нужно же протестировать профессионалов!Excel вещь необъятная. А вдруг...

Mixaz

И вот если Else, то ни в коем случае нельзя начинать For j
ну дык напиши его до Else
по-моему выдуманная ситуация, попробуй по-другому написать алгоритм.

Andbar

согласно справке, у конструкции For ... Next есть только один способ обхода обычного порядка выполнения - Exit For (то, что в нормальных языках называется break).
Так что либо городить If-ы, либо использовать метки.
Есть ещё и извратный метод - использовать Exit For и два цикла
Оставить комментарий
Имя или ник:
Комментарий: