Error handling does not work

K

keri

On running this code;

On Error GoTo SKIPERROR

Range("M14:M20").SpecialCells(xlCellTypeBlanks).Delete xlUp
Range("n14:n20").SpecialCells(xlCellTypeBlanks).Delete xlUp
Range("O14:O20").SpecialCells(xlCellTypeBlanks).Delete xlUp
Range("P14:p20").SpecialCells(xlCellTypeBlanks).Delete xlUp

skiperror:
Range("a18") = Range("n14")
Range("b18") = Range("n15")
Range("c18") = Range("n16")
Range("d18") = Range("n17")
Range("e18") = Range("n18")
Range("f18") = Range("n19")
Range("g18") = Range("n20")
Range("h18") = Range("n21")
Range("i18") = Range("n22")
Range("j18") = Range("n23")

I get a run time error 1004 - No cells were found
I thought the skiperror would handle this but it doesn't - please tell
me where I am going wrong!
 
J

Jim Rech

Every error handler must have a Resume statement unless you are immediately
exiting the sub. The general format is:

Sub MyMacro()


On Error GoTo ErrorHandler
For Counter = 1 to 10
'Do something
StartAgain:
Next
Exit Sub


ErrorHandler:
'Fix problem, etc.
Resume StartAgain
End Sub


While you are "in the error handler" you have no error handling. After the
Resume error handling will be back, you do not need an other On Error:


Sub MyBadMacro()
On Error GoTo ErrorHandler
For Counter = 1 To 10
x = 1 / 0
StartAgain:
Next
Exit Sub


ErrorHandler:
Debug.Print Counter
Resume StartAgain
End Sub


If you want to just ignore the error you can use On Error Resume Next. Use
this judiciously as it can hide problems from you that you should be aware
of.
 
D

Dana DeLouis

On Error GoTo SKIPERROR
skiperror:

Hi. Your code should work, but did you copy the code from the module as is?
The reason I ask is that the case of the two words "SkipError" are
different.
GoTo SKIPERROR should match the case "skiperror"
ie GoTo skiperror
If copied, this tells me you may have a problem elsewhere.

As an alternative...

Sub Demo()
On Error Resume Next
Range("M14:p20").SpecialCells(xlCellTypeBlanks).Delete xlUp
On Error GoTo 0
[A18:J18] = [Transpose(N14:N23)]
End Sub
 

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