VBA Imbriquée on Error GoTo
J'ai un code VBA qui est censé être imbriquées à la vérification des erreurs, mais il ne le fait pas. Le code est pseudo comme ci-dessous. Cependant, chaque fois qu'une erreur se produit au sein d'une erreur (Par exemple, une erreur s'est déclenché dans la boucle, goto SmallError se produit, et une erreur se produit dans SmallError) La deuxième GoTo n'est pas utilisé. L'erreur puis rompt le code.
Ex:
Erreur dans la Boucle
GoTo SmallError
Erreur dans SmallError
Code des Pauses (Ici code doit GoTo FatalError)
Sub DoThings()
On Error GoTo SmallError
'Coding Happens
Do While(conditionhere)
'Looping things happen
GoTo LoopResume
SmallError:
source = Err.source
descript = Err.Description
On Error GoTo Fatal Error
'Small error processing happens
Resume LoopResume
FatalError:
source = Err.source
descript = Err. Description
On Error GoTo ExitError
'Fatal Error processing happens
ExitError:
Exit Sub
LoopResume:
count = count + 1
Loop
On Error GoTo FatalError
'Finishing code happens
End Sub
OriginalL'auteur steventnorris | 2013-04-04
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser une instruction on Error au sein d'un gestionnaire d'erreur. Voir, par exemple, cette l'article qui explique cela.
Ce que vous POUVEZ faire, cependant, est d'avoir une routine qui gère la "régulière d'erreur". Cette routine peut avoir une "erreur fatale" gestionnaire. Votre code devrait alors ressembler à ceci:
(Edit: Modifié le code pour activer la sortie quand il ya une erreur fatale):
Voir édité code
OriginalL'auteur GTG
... vous avez
Fatal Error
dans votreGoto
plutôt queFatalError
, que vous n'obtiendrez pas au bon endroit...Mise à jour de votre code:
OriginalL'auteur John Bustos