non-linear step count loop syntax?

K

Ker_01

I have an existing workbook that requires modification. The workbook has
arrays that were built for earlier needs, and all of that data needs to be
retained (e.g. I can't change the arrays or their contents). However, I have
some code that used to loop through all elements of some arrays, and now I
need to be more selective.

Simplified example- my old code was

For x=3 to 10
'do stuff
Next

and now I need it to be
For X=3,5,7-10
'do stuff
Next

I've worked with linear loops and >1 step values, but I'm not sure how to
approach this type of non-linear loop- and I can't recall seeing any
examples anywhere that deal with this type of situation. What is the proper
syntax to use for the non-linear loop count? Or do I need to build a
separate array of my values (3,5,7,8,9,10 in this example) and reference it
as

MyArray= Array(3,5,7,8,9,10)
For Y = 1 to 6
X=MyArray(Y)
'do stuff
Next

Thanks,
Keith
 
M

Maury Markowitz

and now I need it to be
For X=3,5,7-10
 'do stuff
Next

Welcome to IF/GOTO hell. VB's control structures are not exactly it's
strong suit.

Maury
 
R

Rick Rothstein \(MVP - VB\)

You could do it this way...

Dim X As Variant
For Each X In Array(3, 5, 7, 8, 9, 10)
' do stuff
Next

The value of X at each loop will be 3, 5, 7, 8, 9, 10 in order.

Rick
 
K

Ker_01

Thanks Rick!
That is one step better than my separate array of values, and more eloquent.
Best regards,
Keith
 

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