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

Πίνακας περιεχομένων

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

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

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

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

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

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

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

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

Εξήγηση

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

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

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

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

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

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

Κώδικας:

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

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

Υπάρχει μια άλλη μέθοδος για το χειρισμό του σφάλματος είναι το VBA Goto Statement. Παρέχουμε το 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 και όπως γνωρίζουμε ότι έχουμε ένα σφάλμα στην επόμενη γραμμή του κώδικα μας, ας δούμε το αποτέλεσμα τι θα δώσει το excel.

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

Παράδειγμα # 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

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Υπο δείγμα 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. Στο Συνέχιση σφάλματος Επόμενο, αγνοεί το σφάλμα.
  2. On Error Το GoTo Gives υπερέχει ενός προορισμού όταν συναντά ένα σφάλμα.
  3. Η περιγραφή χρησιμοποιείται για να δείξει το ακριβές σφάλμα που εμφανίστηκε στον χρήστη.

ενδιαφέροντα άρθρα...