![]() |
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. |
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. |
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. |
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