Διαχείριση σφαλμάτων VBA | Οδηγός χειρισμού σφαλμάτων στο Excel VBA

Χειρισμός σφαλμάτων Excel VBA

Στο VBA όταν εργαζόμαστε με κωδικούς, ενδέχεται να συναντήσουμε πολλούς διαφορετικούς τύπους σφαλμάτων και πώς να αντιμετωπίσουμε αυτά τα σφάλματα είναι γνωστός ως Σφάλμα χειρισμού, τώρα μπορεί να υπάρχουν κάποια σφάλματα που συντάσσονται στη σύνταξη, η οποία υπερέχει το τονίζει, αλλά όταν υπάρχει κάποιο σφάλμα που είναι εκτός εμβέλειας ή κάτι που δεν υπάρχει excel μας δίνει ένα αναδυόμενο παράθυρο για το ίδιο, είναι σημαντικό να γνωρίζουμε ποιος κωδικός σφάλματος είναι για ποιο σφάλμα, προκειμένου να εντοπίσουμε το σφάλμα στον κώδικα.

Στο Excel VBA κατά την εκτέλεση οποιουδήποτε συνόλου κωδικών λαμβάνουμε κάποιο είδος σφαλμάτων. Μερικά από αυτά τα σφάλματα είναι σφάλματα σύνταξης, μερικά είναι σφάλματα που δεν είναι εκτελέσιμα. Το σφάλμα σύνταξης γίνεται όταν ο χρήστης επισημαίνεται με κόκκινο χρώμα από το ίδιο το excel. Αλλά όταν υπάρχει οποιοδήποτε άλλο είδος σφάλματος χρόνου εκτέλεσης, πώς το χειριζόμαστε και πώς μπορούμε να ξεπεράσουμε αυτό είναι αυτό που θα καλύψουμε σε αυτό το άρθρο.

Εκτός από τα σφάλματα σύνταξης, τα άλλα σφάλματα χρόνου εκτέλεσης πρέπει να αντιμετωπιστούν κατά την εκτέλεση οποιουδήποτε συνόλου κωδικών. Πρώτον, επιτρέψτε μου να δώσω ένα παράδειγμα για το πώς εμφανίζεται το άλλο σφάλμα χρόνου εκτέλεσης. Ρίξτε μια ματιά στον παρακάτω κώδικα,

Αυτός είναι ένας δείκτης κώδικα όταν εκτελείται θα επιστρέψει ό, τι είναι γραμμένο στη συνάρτηση msgbox. Αλλά όπως μπορούμε να δούμε ότι στη δεύτερη γραμμή του κώδικα υπάρχει το 4/0 το οποίο δεν είναι δυνατό σε μαθηματικούς όρους, έτσι θα επιστρέψει ένα σφάλμα χρόνου εκτέλεσης. Ας εκτελέσουμε τον παραπάνω κώδικα και να δούμε το σφάλμα που θα λάβουμε.

Αυτό είναι το σφάλμα που λαμβάνουμε κατά την εκτέλεση του δεδομένου κώδικα. Τώρα πώς χειριζόμαστε αυτό το σφάλμα γίνεται με το Error Handling.

Υπάρχουν δύο μέθοδοι για τον χειρισμό σφαλμάτων που είναι:

  1. Σφάλμα Goto, και
  2. Σφάλμα Συνέχιση Επόμενο.

Εξήγηση

Όπως εξηγήθηκε παραπάνω, έχουμε πολλούς τύπους σφαλμάτων στο VBA, ορισμένα είναι σύνταξη και μερικά είναι χρόνο εκτέλεσης. Τα σφάλματα σύνταξης επισημαίνονται ήδη με κόκκινο χρώμα, για παράδειγμα, ανατρέξτε στο παρακάτω στιγμιότυπο οθόνης,

Ενώ το άλλο είναι σφάλματα χρόνου εκτέλεσης. Βασικά, το excel θα κάνει τα ακόλουθα τρία πράγματα, είτε θα εμφανίσει σφάλμα είτε θα αγνοήσει αυτό το σφάλμα είτε θα εμφανίσει ένα συγκεκριμένο σύνολο οδηγιών. Για την εκτέλεση τέτοιων εργασιών πρέπει να δώσουμε οδηγίες και αυτό ονομάζεται Error Handling.

Πώς να χειριστείτε σφάλματα στον κώδικα VBA;

Μπορείτε να πραγματοποιήσετε λήψη αυτού του προτύπου Excel για τον χειρισμό σφαλμάτων VBA εδώ - Πρότυπο διαχείρισης σφαλμάτων VBA Excel

Παράδειγμα # 1

Για το πρώτο παράδειγμα ας πάρουμε τον πρώτο κωδικό που πήραμε ως επίδειξη. Στο παραπάνω παράδειγμα, έχουμε δει ότι ο κώδικας δίνει σφάλμα χρόνου εκτέλεσης στη δεύτερη συνάρτηση msgbox.

Γράψτε τον ακόλουθο κωδικό μετά το άνοιγμα της υπολειτουργίας,

Κώδικας:

 Υπο δείγμα () Σφάλμα Συνέχιση Επόμενο MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Τώρα όταν εκτελούμε τον παραπάνω κώδικα βλέπουμε ότι η γραμμή κώδικα που έχει το σφάλμα δεν εκτελείται. Το Excel παραλείπει αυτήν τη γραμμή και συνεχίζει στην επόμενη γραμμή.

Υπάρχει μια άλλη μέθοδος χειρισμού του σφάλματος είναι η δήλωση vba Goto, παρέχουμε excel έναν προορισμό στον οποίο θα μεταβείτε όταν εντοπίσει ένα σφάλμα. Αντί για προηγούμενο κωδικό χειρισμού σφαλμάτων, εισαγάγαμε, γράψτε τον ακόλουθο κώδικα,

Κώδικας:

 Υπο δείγμα () Σφάλμα GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Δίνουμε το excel Az ως προορισμό για να πάει αν εντοπίσει σφάλμα Τώρα μετά το msgbox γράψτε έναν άλλο κωδικό όπως παρακάτω,

Κώδικας:

 Υπο δείγμα () Σφάλμα GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Τέλος: Έξοδος Sub 

Τώρα πρέπει να ορίσουμε τον προορισμό az ως τι πρέπει να κάνει όταν το excel εντοπίσει σφάλμα στον κώδικα.

Κώδικας:

 Υπο δείγμα () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Done: Exit Sub az: MsgBox "This is a error" & Err.Description End Sub 

Τώρα όταν εκτελούμε αυτόν τον κώδικα βλέπουμε το αποτέλεσμα να εμφανίζεται.

Αυτό είναι το πρώτο αποτέλεσμα msg box και όπως γνωρίζουμε ότι έχουμε ένα σφάλμα στην επόμενη γραμμή του κώδικα μας, ας δούμε το αποτέλεσμα τι θα δώσει το excel.

Η err.description παραπάνω στον κώδικα μας βοηθά να δείξουμε ακριβώς τι συνέβη το σφάλμα στον κώδικα μας.

Παράδειγμα # 2

Έχουμε μάθει πώς να χειριζόμαστε λάθη στους κωδικούς μας. Ας δούμε ένα άλλο παράδειγμα για τον τρόπο χειρισμού σφαλμάτων. Σκεφτείτε τον ακόλουθο κώδικα ως το δεύτερο μας παράδειγμα.

Έχουμε ένα κάπως παρόμοιο σφάλμα από το παράδειγμα 1. Το σφάλμα βρίσκεται στη γραμμή d = i / b. Τώρα θα χειριστούμε αυτά τα σφάλματα χρησιμοποιώντας τις δύο μεθόδους που εξηγούνται παραπάνω.

Γράψτε τον ακόλουθο κωδικό μετά το άνοιγμα της υπολειτουργίας,

Κώδικας:

 Υπο δείγμα2 () Σφάλμα Συνέχιση Επόμενο bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub 

Τώρα, όταν εκτελούμε τον κωδικό μας, μπορούμε να δούμε ότι αγνοεί τη δεύτερη γραμμή και απλώς εμφανίζει την τιμή για το C.

Ο παραπάνω χειριστής σφαλμάτων ήταν ένα βιογραφικό στη συνέχεια, τώρα θα χρησιμοποιήσουμε το Go to όπου θα πούμε στο excel έναν προορισμό που πρέπει να πάει όταν συναντά ένα σφάλμα. Γράψτε τον ακόλουθο κωδικό,

Κώδικας:

 Υπο δείγμα2 () Σφάλμα GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Το bx είναι ένας προορισμός που δίνεται όταν συναντά ένα σφάλμα αφού το msgbox D γράψει τον ακόλουθο κώδικα,

Κώδικας:

 Υπο δείγμα 2 () Σφάλμα GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub 

Τώρα πρέπει να καθορίσουμε τον προορισμό Bx τι πρέπει να κάνει όταν συναντά ένα σφάλμα, οπότε γράψτε τον ακόλουθο κώδικα,

Κώδικας:

 Υπο δείγμα 2 () Σφάλμα GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox "Αυτό είναι ένα άλλο σφάλμα" & Err.Description End Sub 

Τώρα όταν εκτελούμε τον κώδικα μπορούμε να δούμε ότι το excel μας δίνει πρώτα την τιμή για το C.

Τώρα σε ένα άλλο βήμα, θα μας δώσει την προτροπή που την παρείχαμε όταν συναντά ένα σφάλμα.

Έτσι χειριζόμαστε τα κανονικά σφάλματα χρόνου εκτέλεσης στο Excel VBA.

Πράγματα που πρέπει να θυμάστε

Υπάρχουν μερικά πράγματα που πρέπει να θυμόμαστε σχετικά με τη διαχείριση σφαλμάτων:

  1. On Error Resume Next Αγνοεί το σφάλμα.
  2. On Error Το GoTo Gives υπερέχει ενός προορισμού όταν συναντά ένα σφάλμα.
  3. Η περιγραφή χρησιμοποιείται για να δείξει το ακριβές σφάλμα που παρουσιάστηκε στον χρήστη.

$config[zx-auto] not found$config[zx-overlay] not found