Do loops and omit a couple of iterations?

A

andreas

I wonder whether it is possible to iterate through a collection of
objects and omit a couple of iterations, such as

Dim i as integer
For i = 1 to 7 Skip 3,4

Set tbl = ActiveDocument.Tables(i)

If tbl.Rows(1) etc. then
do stuff

End If

Next i

Is this possible, ie. skip the third and fourth table ? `

Help is appreciated. Thank you very much in advance.

Regards,

Andreas
 
G

Greg Maxey

I wonder whether it is possible to iterate through a collection of
objects and omit a couple of iterations, such as

Dim i as integer
For i = 1 to 7 Skip 3,4

Set tbl = ActiveDocument.Tables(i)

If tbl.Rows(1) etc. then
do stuff

End If

Next i

Is this possible, ie. skip the third and fourth table ? `

Help is appreciated. Thank you very much in advance.

Regards,

Andreas

Yes it is possible:
Sub ScratchMacro()
Dim i As Long
For i = 1 To 7
Select Case i
Case Is = 1, 2, 5, 6, 7
MsgBox "Bob's your uncle"
'Do Nothing
End Select
Next i
End Sub
 
J

Jay Freedman

It's possible, but not with that kind of syntax. There's a Step option in
the For syntax, but that affects every iteration. Instead, place the
contents of the loop in an If...Then clause like this:

Dim i as integer
For i = 1 to 7
If (i <> 3) And (i <> 4) Then
Set tbl = ActiveDocument.Tables(i)

If tbl.Rows(1) etc. then
'do stuff
End If
End If
Next i

Another possibility, when you have more than just a few items to skip over,
is to use a Select Case clause.

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.
 
A

andreas

It's possible, but not with that kind of syntax. There's a Step option in
the For syntax, but that affects every iteration. Instead, place the
contents of the loop in an If...Then clause like this:

Dim i as integer
For i = 1 to 7
If (i <> 3) And (i <> 4) Then
Set tbl = ActiveDocument.Tables(i)

If tbl.Rows(1) etc. then
'do stuff
End If
End If
Next i

Another possibility, when you have more than just a few items to skip over,
is to use a Select Case clause.

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ:http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.











- Zitierten Text anzeigen -

Jay,

I inadvertently forgot to say thank you for your valuable help. It is
working fine. Thank you!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top