ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Does VBA have a "continue" statement like C? (https://www.excelbanter.com/excel-programming/390847-does-vba-have-continue-statement-like-c.html)

[email protected]

Does VBA have a "continue" statement like C?
 
I would like to write:

for each ...
if ... then continue
... rest of for loop ...
next ...

Of course, I could write:

for each ...
if not ... then
... rest of for loop ...
end if
next ...

But I prefer the style of the first form.


Rick Rothstein \(MVP - VB\)

Does VBA have a "continue" statement like C?
 
I would like to write:

for each ...
if ... then continue
... rest of for loop ...
next ...

Of course, I could write:

for each ...
if not ... then
... rest of for loop ...
end if
next ...

But I prefer the style of the first form.


VB doesn't have a Continue statement. You can imitate one like this...

For Each ....
If .... Then Goto Continue1
.... <<rest of loop
Continue1:
Next

Note that I used a number on the end because if you have more than one
situation where you want the Continue, your Labels that you GoTo must be
uniquely named.

Rick


Peter T

Does VBA have a "continue" statement like C?
 
Not sure I correctly understand what you want (Rick may have a better
understanding of "continue" in C) but when I first read your post I thought
you wanted something like this -

For each ...
If .... then
' code
Else
Exit For
End if
Next

Regards,
Peter T


wrote in message
oups.com...
I would like to write:

for each ...
if ... then continue
... rest of for loop ...
next ...

Of course, I could write:

for each ...
if not ... then
... rest of for loop ...
end if
next ...

But I prefer the style of the first form.




Rick Rothstein \(MVP - VB\)

Does VBA have a "continue" statement like C?
 
Not sure I correctly understand what you want (Rick may have
a better understanding of "continue" in C)


The Continue statement is just a method of skipping any remaining code for
the current iteration in a loop and moving on to the next iteration for the
loop. See the "Using break and continue Within Loops" section midway down at
this link....

http://www.le.ac.uk/cc/tutorials/c/ccccif.html

Rick


Peter T

Does VBA have a "continue" statement like C?
 
Ah-ha! Thanks for the link, looks like a useful course. It would appear
'Exit For' is the equivalent of 'break' and the opposite of what the OP
wants.

As 'Goto' seems to be frowned on by some (not by me) maybe 'continue' could
be done purely with appropriate If's perhaps with Else's.

Regards,
Peter T

"Rick Rothstein (MVP - VB)" wrote in
message ...
Not sure I correctly understand what you want (Rick may have
a better understanding of "continue" in C)


The Continue statement is just a method of skipping any remaining code for
the current iteration in a loop and moving on to the next iteration for

the
loop. See the "Using break and continue Within Loops" section midway down

at
this link....

http://www.le.ac.uk/cc/tutorials/c/ccccif.html

Rick




Rick Rothstein \(MVP - VB\)

Does VBA have a "continue" statement like C?
 
As 'Goto' seems to be frowned on by some (not by me) maybe 'continue'
could be done purely with appropriate If's perhaps with Else's.


Actually, I frown upon the use of GoTo also, but the OP ruled out my
preferred method of structuring the If-Then(-Else) blocks to allow a code
fall-through for those situations where others rely on Continue statement
type constructions (which is what you alluded to)... so, I was left no
choice but to post the GoTo equivalent code for it.

Rick


Peter T

Does VBA have a "continue" statement like C?
 
so, I was left no
choice but to post the GoTo equivalent code for it.


:-)

A bit off topic -

Actually, I frown upon the use of GoTo also


Although I said I didn't [frown on it] there are places I certainly wouldn't
use it, eg to get out of With...End With, Select Case or For-Each object
type loops On which point I avoid Exit For in a For Each loop either despite
my earlier invalid suggestion.

However, say, to avoid adding to an already large block of nested If's I
might use Goto to skip to the next section. Do you see anything
intrinsically wrong in that type of use of GoTo.

Regards,
Peter T



Rick Rothstein \(MVP - VB\)

Does VBA have a "continue" statement like C?
 
However, say, to avoid adding to an already large block of nested If's I
might use Goto to skip to the next section. Do you see anything
intrinsically wrong in that type of use of GoTo.


No, there is nothing intrinsically wrong with it at all... and many
programmers use it just the way you describe. However, there are also lots
of programmers, like me, who never use it at all. I have no trouble
constructing, or reading, a long block of nested If-Then-ElseIf blocks, so
that is what I prefer to do. To each his/her own. One note, however... if
things are getting lengthy in a nested If-Then-ElseIf block, placing the
active code in subroutines so that most levels are simply single line Call
statements helps to make things more readable.

Rick



All times are GMT +1. The time now is 07:23 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com