Στο VBA, μπορείτε να προγραμματίσετε τον κωδικό σας στο Exit a Sub κάθε φορά που αντιμετωπίζεται σφάλμα. Για να το κάνετε αυτό, χρησιμοποιήστε Σφάλμα GoTo και Έξοδος Sub.
Το On Error Goto λέει στη VBA ότι όταν παρουσιαστεί σφάλμα στο "Μετάβαση σε" μια συγκεκριμένη ενότητα του κωδικού σας. Πρώην:
1 | Στο Error GoTo ErrorHandler |
Μέσα από αυτήν την ενότητα, μπορείτε στη συνέχεια να πείτε στο VBA να εξέλθει από το Sub για να εξέλθετε από τη δευτερεύουσα διαδικασία:
12 | ErrorHandler:Έξοδος Sub |
Διαβάστε παρακάτω, για να δείτε αυτές τις γραμμές κώδικα σε δράση…
Έξοδος από σφάλμα Sub on Error στο VBA
Σε αυτό το παράδειγμα, θα δημιουργήσουμε ένα σφάλμα διαιρώντας με το μηδέν:
1 | i = 5 /0 |
Δείτε τον πλήρη κώδικα παρακάτω. Όταν το VBA διαβάσει το σφάλμα, θα "μεταβεί" στην ενότητα ErrorHandler του κώδικα και θα εξέλθει:
123456789101112131415 | Sub TestError ()Dim i As IntegerΣτο Error GoTo ErrorHandleri = 5 /0«Κάνε κάτι με iMsgBox iΈξοδος SubErrorHandler:MsgBox "Εάν παρουσιαστεί σφάλμα, τότε βγείτε από το Sub"Έξοδος SubΤέλος υπο |
Για να καθορίσετε το χειρισμό σφαλμάτων, πρέπει πρώτα να δηλώσετε Σφάλμα GoTo δήλωση. Θα πρέπει να δηλώνεται στην αρχή ενός Sub:
1 | Στο Error GoTo ErrorHandler |
Στη συνέχεια, πρέπει να δηλώσετε τον κωδικό χειρισμού σφάλματος. Συνήθως βρίσκεται στο τέλος του κώδικα:
123 | ErrorHandler:MsgBox "Εάν παρουσιαστεί σφάλμα, τότε βγείτε από το Sub"Έξοδος Sub |
Προσθέτουμε το "Exit Sub" πάνω από το ErrorHandler επειδή θέλουμε να εκτελέσουμε τον κωδικό ErrorHandler μόνο εάν υπάρχει σφάλμα.
12345 | Έξοδος SubErrorHandler:MsgBox "Εάν παρουσιαστεί σφάλμα, τότε βγείτε από το Sub"Έξοδος SubΤέλος υπο |
Εάν εκτελέσετε το Sub, θα εμφανιστεί σφάλμα λόγω διαίρεσης με μηδέν. Εκείνη τη στιγμή θα εκτελεστεί ο κωδικός χειρισμού σφάλματος. Εμφανίζεται το πλαίσιο μηνυμάτων και το Sub εξέρχεται.
Εικόνα 1. VBA On Error Exit Sub
Αν θέλετε να μάθετε πώς να τερματίζετε την εκτέλεση κώδικα σε VBA, κάντε κλικ σε αυτόν τον σύνδεσμο: VBA End
Εάν θέλετε να μάθετε πώς να εξέρχεστε από ένα δευτερεύον ή μια λειτουργία, κάντε κλικ σε αυτόν τον σύνδεσμο: VBA Exit Sub ή Function