Por eso, con On Error GoTo puedes detectar los errores que te puede dar el codigo; y dependiendo del error puedes establecer sentencias que restauren lo q ya se hizo; por ejemplo:
Código:
Sub Proceso()
On Error GoTo errores
' Sentencias
errores:
If Err.Number <> 0 Then
Select Case Err.Number
Case 3021
' Sentencias...
Case 1094
' Sentencias...
Case Else
' Sentencias...
End Select
End If
End Sub
Pero antes de hacer esto debes provocar los errores, para saber el numero del error; y que es lo que queres que haga el proceso en caso de que ocurra el error.
Saludos.