Nested loop order?

J

jclark419

Hey everyone, another bit of code here and I want to make sure this is
going to run in the order that I think it will. It consists of a
"nested" for loop. I would like it to run the outer one one time for
every 9 times the inner one runs. In other words I have one for loop
representing the column value and the inner for loop represented the
row value. I want it to perform the calculations for one column at a
time all the way down before it moves to the next. Here is the code:


Code:
--------------------

Public Function results() As Double

Dim answers(9, 9) As Double
Dim i, j, component As intger

For i = 20 To 29

For j = 7 To 15

ThisWorkbook.Worksheets("Calculations").Cells(i, j).Select
component = ThisWorkbook.Worksheets("Calculations").Cells(ActiveCell.row, 6).Value

Select Case component
Case 1

Case 2

Case Else

Next j

Next i

End Function

--------------------


Ignore the select case command I am not too concerned with that right
now, just the for loops.

Thanks.

~Jason
 
T

Tom Ogilvy

For i = 20 To 29
For j = 7 To 15
ThisWorkbook.Worksheets("Calculations").Cells(i, j).Select
Next j
Next i

as written, this works row by row across all columns (change a row, work on
columns 7 to 15)

perhaps you meant
.Cells(j,i).Select

otherwise you would reverse the loops

For j= 7 To 15
For i= 20 To 29
ThisWorkbook.Worksheets("Calculations").Cells(i, j).Select
Next i
Next j

--
Regards,
Tom Ogilvy


jclark419 said:
Hey everyone, another bit of code here and I want to make sure this is
going to run in the order that I think it will. It consists of a
"nested" for loop. I would like it to run the outer one one time for
every 9 times the inner one runs. In other words I have one for loop
representing the column value and the inner for loop represented the
row value. I want it to perform the calculations for one column at a
time all the way down before it moves to the next. Here is the code:


Code:
--------------------

Public Function results() As Double

Dim answers(9, 9) As Double
Dim i, j, component As intger

For i = 20 To 29

For j = 7 To 15

ThisWorkbook.Worksheets("Calculations").Cells(i, j).Select
component =
ThisWorkbook.Worksheets("Calculations").Cells(ActiveCell.row, 6).Value
 
B

Bernie Deitrick

Jason,

The looping is fine: it is your other code that worries me: you don't do anything with the cell
after you select it except pick up the value from column F of its row, so why loop through the
columns?

HTH,
Bernie
MS Excel MVP
 

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