Question : Gestion d'erreur VBA

Salut experts,

Simple un ici. Est la gestion d'erreur toujours exigée. Je ne l'avais pas employée jusqu'ici, est-ce que mais je l'ai vue en l'autre code etc.… comment je sais quand j'ont besoin de lui, et où devrait il entrer dans le code ? y a il une norme d'ensemble en termes d'où elle devrait être placée ou est lui entièrement dépendant du code et des instructions étant écrits. le
I l'ont vu parfois à l'extrémité, est ce le meilleur endroit pour lui ? Ou est-ce que, je peux passer sans lui ? les indicateurs du

any seraient grands !

Thanks et acclamation : -)
class= de

Réponse : Gestion d'erreur VBA

Sur l'erreur le résumé après devrait généralement être employé seulement dans les sous-marins simples simples et les fonctions de but qui s'appellent en vos sous-marins principaux (par exemple la vérification d'un cahier de travail est ouverte ou une feuille existe). Au delà de ce, la gestion d'erreur est vraiment pour les erreurs inattendues de capture ou les erreurs que vous ne pouvez pas aisément ne manipuler d'aucune autre manière. Typiquement vous avez :

Sur l'err_handler Goto d'erreur

ligne au début (où le « err_handler » est une étiquette en votre code)

puis une section de traiteur des erreurs à l'extrémité, qui dans mon cas vous retourne habituellement à une section de nettoyage à la fin du code. Par exemple :


1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
Worksheet_Change secondaire privé (cible de ByVal comme gamme)
    Faible rngCell comme gamme, strPrefix comme corde
    
   Sur l'erreur Worksheet_Change_Error GoTo
    
    Application.EnableEvents = faux
    
    Sinon intersecter (cible, gamme (« A :  »)) N'est rien alors
        strPrefix = gamme (« C2 »). Valeur
        Pour chaque rngCell intersecter dedans (cible, gamme (« A :  »))
            Si Len (rngCell.Value) > 0 puis
                S'InStr (1, rngCell.Value, strPrefix, vbTextCompare) <> 1 puis
                    rngCell.Value = strPrefix et rngCell.Value
                Finir si
            Finir si
        Prochain rngCell
    Finir si

clean_up :
    Application.EnableEvents = rectifient
   Sortir le sous-marin

Worksheet_Change_Error :

    MsgBox « erreur » et Err.Number et « (" et Err.Description et ") de procédé Worksheet_Change du document Sheet1 de VBA »
    Clean_up de résumé
Sous-marin d'extrémité
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us