for next loop problems

  • Thread starter Thread starter cliee
  • Start date Start date
C

cliee

Hi I am a excel programming beginner, so my question may be stupid

1. how to jump out from a for next loop without error?

eg

For LR = 5 To 25 Step 4
For LC = 1 To 5 Step 1
If ActiveSheet.cells(LR,LC).Value <> True Then
Worksheets("Label-s").cells(LR, LC).Value = "abcde"
Worksheets("Label-s").cells(LR+1,LC).Value = "Art no. " & art & " " & des
Worksheets("Label-s").cells(LR+2,LC).Value = con & " " & hen & " " & w
GoTo 178
End If
Next LC
Next LR

I use (goto 178) to go to line 178 is this the right way?
(line 178 is the end of this macro)
-------------------------------------------------


2. I want the follow order for the for next loop

5,9,13,17,21,25
so I use this
For LR = 5 To 25 Step 4

I want 1,3,5
so I use
For LC = 1 To 5 Step 1

the result is that the variable fill in cells I do not wanted such as A8
A13, and b6 .......

the result what I want ( the cells which is fill in something) are like this....

a5 c5 e5
a6 c6 e6
a7 c7 e7

a9 c9 e9
a10 c10 e10
a11 c11 e11

............



thanks for help
 
The recommended way to jump out of a for/next loop is to use the Exit For
statement i.e instead of GoTo 178 use Exit For: this will cause execution to
resume on the Next LR line.

Don't use absolute branching (GoTo 178): this style of coding is a nightmare
to maintain. It is arguable that you should not use GoTo at all. If you must,
use GoTo Label where Label is a valid name followed by colon. For example:

If a=0 then goto MyLabel
'.... other statements

MyLabel:
 
To answer your first question: Exit For will break out of a For Next loop.

Is GoTo the right way?
If you listen to old school programmers, they'll tell you that GoTo is evil.
Mainly because a guy called Dijkstra said so - he spun some pretty cool code
so you just don't argue with him.

Personally, I'm of the "goto is evil" camp. I try not to use Exit For
either. What you save in coding time you'll make up in bug tracking next
maintenance release.
 
Back
Top