Array Question

H

hotherps

When this code runs it starts to assign values in the array if th
conditions are true, but if the statements avaluate to false it move
to the next number in the array. Basically it is jumbling up m
results.

Is there a way to tell the array to evaluate each number across th
enitre named range before moving on to the next number? Thanks


For Each cell In range("G11:I125")
c = Array(5,4,3,2,1)
For i = 0 To 5
J = 356
K = 305
If Cells(J, c(i)).Value - 1 >= Cells(K, c(i)) And cell.Value > "" An
Cells(cell.Row, c(i) + 97) = "x" Then _
cell.Value = Cells(9, c(i) + 97)
Next i
Nex
 
N

Norman Jones

Hi Hotherps,

If I understand you correctly, you need to invert the loops:

c = Array(5, 4, 3, 2, 1)

J = 356
K = 305

For i = 0 To 5
For Each cell In Range("G11:I125")
If Cells(J, c(i)).Value - 1 >= Cells(K, c(i)) _
And cell.Value > "" _
And Cells(cell.Row, c(i) + 97) = "x" Then
cell.Value = Cells(9, c(i) + 97)
End If
Next cell
Next i

By the way, I have taken the J and K assignments out of the loop as there is
no need to repeatedly read them.

Also, as written, you would get a Subscript out of range error, as the
expression:
For i = 0 To 5
calls for 6 values and your c array only comprises 5 values.

I should qualify this reply as I have not endeavoured to understand what
you are doing!
 

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