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

Re: Do loops and omit a couple of iterations? by Greg

Greg
Mon Feb 12 12:29:23 CST 2007

On Feb 12, 1:16 pm, "andreas" <andreas.her...@gmx.de> wrote:
> 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





Re: Do loops and omit a couple of iterations? by Jay

Jay
Mon Feb 12 12:32:41 CST 2007

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.

andreas wrote:
> 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



Re: Do loops and omit a couple of iterations? by andreas

andreas
Sat Apr 07 00:08:34 CDT 2007

On 12 Feb., 20:32, "Jay Freedman" <jay.freed...@verizon.net> wrote:
> 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.
>
>
>
> andreas wrote:
> > 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- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

Jay,

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