|
-
Nov 1st, 2013, 10:32 AM
#1
Thread Starter
Member
[RESOLVED] nested For loop not working
I get an error message ' Next Without For' at the bottom of the second loop, and I have no idea why:-
For L = LBound(BArr4) To UBound(BArr4) 'For every line
TmpArr4() = Split(BArr4(L), " ") 'Split into words
For M = LBound(TmpArr4) To UBound(TmpArr4)
Tmp4 = TmpArr4(M)
A_Is = Left(Tmp4, 1)
Select Case A_Is
Case "A": Ac_1 = R
Case "X": Xc_1 = R
Case "T": Tmp4 = Tc_R
End Select
TmpArr4(M) = Tmp4
Next M
BArr4(L) = Join(TmpArr4, " ") 'Join words back into lines
If T_Value = "" Then T_Value = 12
If Ac_1 + Xc_1 >= T_Value Then
BArr4(L - 1) = Replace(BArr4(L - 1), Ac_1 & Xc_1, Tc_R)
TmpArr5(L) = Split(BArr4(L), "A")
TmpArr5(0) = XBlah
BArr4(L) = XBlah & "A" & Ac_1 & Xc_1 & vbNewLine & "A" & Tc_R
Next L
I get the error message even when I comment out all the code between "Next M" and "Next L", Which I can't understand. Any ideas?
-
Nov 1st, 2013, 10:55 AM
#2
Re: nested For loop not working
The problem is that you're missing an End If.
-
Nov 1st, 2013, 11:03 AM
#3
Frenzied Member
Re: nested For loop not working
I get an error message ' Next Without For' at the bottom of the second loop, and I have no idea why:-
you have not closed to your both End if .so try the following way .
Code:
For L = LBound(BArr4) To UBound(BArr4) 'For every line
TmpArr4() = Split(BArr4(L), " ") 'Split into words
For M = LBound(TmpArr4) To UBound(TmpArr4)
Tmp4 = TmpArr4(M)
A_Is = Left(Tmp4, 1)
Select Case A_Is
Case "A": Ac_1 = R
Case "X": Xc_1 = R
Case "T": Tmp4 = Tc_R
End Select
TmpArr4(M) = Tmp4
Next M
BArr4(L) = Join(TmpArr4, " ") 'Join words back into lines
If T_Value = "" Then T_Value = 12
If Ac_1 + Xc_1 >= T_Value Then
BArr4(L - 1) = Replace(BArr4(L - 1), Ac_1 & Xc_1, Tc_R)
TmpArr5(L) = Split(BArr4(L), "A")
TmpArr5(0) = XBlah
BArr4(L) = XBlah & "A" & Ac_1 & Xc_1 & vbNewLine & "A" & Tc_R
End if
End if
Next L
-
Nov 1st, 2013, 11:04 AM
#4
Thread Starter
Member
Re: nested For loop not working
If that's the case, why does it give the same error message when I comment all the code out?
Thanks for pointing it out though, I hadnt thought of it. So I'd need:-
If T_Value = "" Then T_Value = 12
End If
If Ac_1 + Xc_1 >= T_Value Then...
End If
-
Nov 1st, 2013, 11:08 AM
#5
Frenzied Member
Re: nested For loop not working
Because you have remove the statement when if becomes true .you need to do the statement .
Code:
If T_Value = "" Then T_Value = 12
'Must have statement here when if condition is true
End If
If Ac_1 + Xc_1 >= T_Value Then...
'type your statement as well .
End If
-
Nov 1st, 2013, 11:18 AM
#6
Thread Starter
Member
Re: nested For loop not working
Thanks, firoz.raj, no errors now, although whether the code works as it should is another matter...
But I'm still not sure why it gave the same error when all code between Next M and Next L were commented out, including all the unfinished if statements. It doesnt matter now, really, but I am still curious about it.
-
Nov 1st, 2013, 11:21 AM
#7
Re: nested For loop not working
The first If doesn't need and End If.
Code:
For L = ...
...
For M = ...
...
Next M
If T_Value = "" Then T_Value = 12
If Ac_1 + Xc_1 >= T_Value Then
...
End If
Next L
I suspect that you have another If statement preceding the loop that is also missing and End If statement.
-
Nov 1st, 2013, 11:42 AM
#8
Thread Starter
Member
Re: nested For loop not working
Yes, you're quite right! There's an If at the second line of the sub. Understand now.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|