ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   What is causing "Block if without End if" error? (https://www.excelbanter.com/excel-programming/339548-what-causing-block-if-without-end-if-error.html)

davegb

What is causing "Block if without End if" error?
 
Here's my code thus far:

For Each rCell In rOrigCtyList
strOrig = rCell.Value
strOutcomes = rCell.Offset(0, 3).Value
lCurRow = rCell.Row
If strOrig < "DYC" Then
If strOutcomes < "DYC" Then
If strOutcomes < strOrig Then
lOrigCtyNo = Left(strOrig, 2)
lOutcomesNo = Left(strOutcomes, 2)

If lOrigCtyNo lOutcomesNo Then
Range(rCell, rCell.Offset(0, 2)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(-1, 0) = strOutcomes
End If

If lOrigCtyNo < lOutcomesNo Then
Range(rCell.Offset(0, 3), rCell.Offset(0,
13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig
End If

End If
Else
Range(rCell.Offset(0, 3), rCell.Offset(0, 13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig

End If
Else: End Sub <-----ERROR
End If
Next rCell
End Sub

I'm getting a block if without end if error at the marked line. I've
matched and rematched the If's and End Ifs. They match. So what am I
missing to cause the error? I want to exit the program when strOrig <
"DYC' is false.


Harald Staff

What is causing "Block if without End if" error?
 
End Sub is the unique end tag. What you want is Exit Sub.

HTH. Best wishes Harald

"davegb" skrev i melding
oups.com...
Here's my code thus far:

For Each rCell In rOrigCtyList
strOrig = rCell.Value
strOutcomes = rCell.Offset(0, 3).Value
lCurRow = rCell.Row
If strOrig < "DYC" Then
If strOutcomes < "DYC" Then
If strOutcomes < strOrig Then
lOrigCtyNo = Left(strOrig, 2)
lOutcomesNo = Left(strOutcomes, 2)

If lOrigCtyNo lOutcomesNo Then
Range(rCell, rCell.Offset(0, 2)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(-1, 0) = strOutcomes
End If

If lOrigCtyNo < lOutcomesNo Then
Range(rCell.Offset(0, 3), rCell.Offset(0,
13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig
End If

End If
Else
Range(rCell.Offset(0, 3), rCell.Offset(0, 13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig

End If
Else: End Sub <-----ERROR
End If
Next rCell
End Sub

I'm getting a block if without end if error at the marked line. I've
matched and rematched the If's and End Ifs. They match. So what am I
missing to cause the error? I want to exit the program when strOrig <
"DYC' is false.




Chip Pearson

What is causing "Block if without End if" error?
 
Dave,

A sub can have only one End Sub, which marks the end of the
procedure. No code can appear after an End Sub (except, of
course, other procedures). Rather than End Sub on the erroneous
line, I think you wanted an Exit Sub.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"davegb" wrote in message
oups.com...
Here's my code thus far:

For Each rCell In rOrigCtyList
strOrig = rCell.Value
strOutcomes = rCell.Offset(0, 3).Value
lCurRow = rCell.Row
If strOrig < "DYC" Then
If strOutcomes < "DYC" Then
If strOutcomes < strOrig Then
lOrigCtyNo = Left(strOrig, 2)
lOutcomesNo = Left(strOutcomes, 2)

If lOrigCtyNo lOutcomesNo Then
Range(rCell, rCell.Offset(0, 2)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(-1, 0) = strOutcomes
End If

If lOrigCtyNo < lOutcomesNo Then
Range(rCell.Offset(0, 3), rCell.Offset(0,
13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig
End If

End If
Else
Range(rCell.Offset(0, 3), rCell.Offset(0,
13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig

End If
Else: End Sub <-----ERROR
End If
Next rCell
End Sub

I'm getting a block if without end if error at the marked line.
I've
matched and rematched the If's and End Ifs. They match. So what
am I
missing to cause the error? I want to exit the program when
strOrig <
"DYC' is false.




davegb

What is causing "Block if without End if" error?
 

Harald Staff wrote:
End Sub is the unique end tag. What you want is Exit Sub.

HTH. Best wishes Harald

"davegb" skrev i melding
oups.com...
Here's my code thus far:

For Each rCell In rOrigCtyList
strOrig = rCell.Value
strOutcomes = rCell.Offset(0, 3).Value
lCurRow = rCell.Row
If strOrig < "DYC" Then
If strOutcomes < "DYC" Then
If strOutcomes < strOrig Then
lOrigCtyNo = Left(strOrig, 2)
lOutcomesNo = Left(strOutcomes, 2)


Thanks to both of you!
If lOrigCtyNo lOutcomesNo Then
Range(rCell, rCell.Offset(0, 2)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(-1, 0) = strOutcomes
End If

If lOrigCtyNo < lOutcomesNo Then
Range(rCell.Offset(0, 3), rCell.Offset(0,
13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig
End If

End If
Else
Range(rCell.Offset(0, 3), rCell.Offset(0, 13)).Select
Selection.Insert Shift:=xlDown
rCell.Offset(0, 3) = strOrig

End If
Else: End Sub <-----ERROR
End If
Next rCell
End Sub

I'm getting a block if without end if error at the marked line. I've
matched and rematched the If's and End Ifs. They match. So what am I
missing to cause the error? I want to exit the program when strOrig <
"DYC' is false.




All times are GMT +1. The time now is 05:10 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com