Σπίτι Κοινωνική Media Πώς να χρησιμοποιήσετε τη δήλωση OnError στο Excel 2016 VBA - dummies

Πώς να χρησιμοποιήσετε τη δήλωση OnError στο Excel 2016 VBA - dummies

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

Βίντεο: Week 8, continued 2025

Βίντεο: Week 8, continued 2025
Anonim

Όταν πρέπει να αντιμετωπίσετε σφάλματα στο Excel VBA, μπορείτε να χρησιμοποιήσετε την εντολή OnError. Ωστόσο, υπάρχουν μερικά πράγματα που πρέπει να γνωρίζετε πρώτα. Μπορείτε να χρησιμοποιήσετε την εντολή On Error με τρεις τρόπους.

Σύνταξη Τι κάνει
Σφάλμα GoTo ετικέτα Μετά την εκτέλεση αυτής της δήλωσης, η VBA συνεχίζει την εκτέλεση με τη δήλωση

Πρέπει να συμπεριλάβετε μια παύλα

μετά την ετικέτα έτσι ώστε η VBA να την αναγνωρίζει ως ετικέτα.

Σφάλμα GoTo 0 Μετά την εκτέλεση αυτής της δήλωσης, η VBA συνεχίζει την κανονική συμπεριφορά ελέγχου σφαλμάτων

. Χρησιμοποιήστε αυτήν τη δήλωση αφού χρησιμοποιήσετε μία από τις

άλλες δηλώσεις On Error ή όταν θέλετε να καταργήσετε το χειρισμό σφαλμάτων

στη διαδικασία σας.

Κατά τη συνέχιση του σφάλματος Επόμενο Μετά την εκτέλεση αυτής της δήλωσης, η VBA απλώς αγνοεί όλα τα σφάλματα

και συνεχίζει την εκτέλεση με την επόμενη δήλωση.

Συνέχιση μετά από σφάλμα

Σε ορισμένες περιπτώσεις, απλά θέλετε η ρουτίνα να τελειώσει με χαρά όταν εμφανιστεί ένα σφάλμα. Για παράδειγμα, μπορείτε να εμφανίσετε ένα μήνυμα που περιγράφει το σφάλμα και στη συνέχεια να τερματίσετε τη διαδικασία. (Το παράδειγμα EnterSquareRoot5 που φαίνεται νωρίτερα χρησιμοποιεί αυτή την τεχνική.) Σε άλλες περιπτώσεις, θέλετε να ανακτήσετε από το σφάλμα, αν είναι δυνατόν.

Για να ανακτήσετε ένα σφάλμα, πρέπει να χρησιμοποιήσετε μια δήλωση Resume. Αυτό καθαρίζει τη συνθήκη σφάλματος και σας επιτρέπει να συνεχίσετε την εκτέλεση σε κάποια θέση. Μπορείτε να χρησιμοποιήσετε τη δήλωση Resume με τρεις τρόπους.

Σύνταξη Τι κάνει
Συνέχεια Η εκτέλεση συνεχίζεται με τη δήλωση που προκάλεσε το σφάλμα. Χρησιμοποιήστε το

αν ο κώδικας αντιμετώπισης σφαλμάτων διορθώνει το πρόβλημα και

είναι εντάξει για να συνεχίσετε.

Συνέχιση Επόμενη Η εκτέλεση συνεχίζεται με τη δήλωση αμέσως μετά τη δήλωση

που προκάλεσε το σφάλμα. Αυτό ουσιαστικά αγνοεί το σφάλμα

.

Επανάληψη ετικέτα Η εκτέλεση συνεχίζεται στην ετικέτα που καθορίζετε.
Sub EnterSquareRoot6 () Dim Num As Variant Dim Msg As String Dim Αντίστροφη ως TryAgain: 'Ρύθμιση χειρισμού σφαλμάτων On Error GoTo BadEntry 'Προτροπή για μια τιμή Num = InputBox ("Εισάγετε μια τιμή") Αν Num = "" Στη συνέχεια Exit Sub' Εισάγετε την τετραγωνική ρίζα ActiveCell. Τιμή = Sqr (Num) Έξοδος Υπο BadEntry: Msg = Err. Αριθμός & ":" & Σφάλμα (Err.) Msg = Msg & vbNewLine & vbNewLine Msg = Msg & " εισάγετε μια μη αρνητική τιμή. "Msg = Msg & vbNewLine & vbNewLine &" Δοκιμάστε ξανά; "Ans = MsgBox (Msg, vbYesNo + vbCritical) Αν Ans = vbYes Στη συνέχεια επαναλάβετε το TryAgain End Sub

Αυτή η διαδικασία έχει άλλη ετικέτα: TryAgain.Εάν παρουσιαστεί σφάλμα, η εκτέλεση συνεχίζεται στην ετικέτα BadEntry και ο κώδικας εμφανίζει το παρακάτω μήνυμα. Αν ο χρήστης απαντήσει κάνοντας κλικ στο κουμπί Ναι, η εντολή Resume ξεκινά και η εκτέλεση μεταβαίνει ξανά στην ετικέτα TryAgain. Εάν ο χρήστης κάνει κλικ Όχι, η διαδικασία λήγει.

Εάν παρουσιαστεί σφάλμα, ο χρήστης μπορεί να αποφασίσει αν θα προσπαθήσει ξανά.

Παρατηρήστε ότι το μήνυμα σφάλματος περιλαμβάνει επίσης τον αριθμό σφάλματος μαζί με την "επίσημη" περιγραφή σφάλματος.

Η εντολή Resume διαγράφει την κατάσταση σφάλματος πριν συνεχίσει. Για να το δείτε αυτό, προσπαθήστε να αντικαταστήσετε την ακόλουθη πρόταση για την δεύτερη έως τελευταία δήλωση στο προηγούμενο παράδειγμα:

Εάν Ans = vbYes Στη συνέχεια GoTo TryAgain

Ο κώδικας δεν λειτουργεί σωστά αν χρησιμοποιείτε GoTo αντί Resume. Για να αποδείξετε, εισαγάγετε έναν αρνητικό αριθμό. Παίρνετε την ερώτηση σφάλματος. Κάντε κλικ στο κουμπί Ναι για να δοκιμάσετε ξανά και, στη συνέχεια, πληκτρολογήστε

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

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

Αρχίζει αμέσως μετά την ετικέτα που καθορίζεται στην εντολή On Error.

  • Θα πρέπει να προσεγγιστεί από τη μακροεντολή σας μόνο σε περίπτωση εμφάνισης σφάλματος. Αυτό σημαίνει ότι πρέπει να χρησιμοποιήσετε μια δήλωση όπως Exit Sub ή Exit Function αμέσως πριν την ετικέτα.

  • Ίσως χρειαστεί μια δήλωση Resume. Εάν επιλέξετε να μην ακυρωθεί η διαδικασία όταν παρουσιαστεί σφάλμα, πρέπει να εκτελέσετε μια δήλωση Resume πριν επιστρέψετε στον κύριο κώδικα.

  • Γνωρίζοντας πότε να αγνοήσετε τα σφάλματα

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

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

Sub SelectionSqrt () Dim κυψέλη As Range If TypeName (Επιλογή) <> "range" Στη συνέχεια Exit Sub Για κάθε κελί στην επιλογή Cell. Value = Sqr (τιμή κυψέλης) Επόμενο κελί End Sub

Σε αυτή την περίπτωση, ίσως θέλετε να παραλείψετε απλά οποιοδήποτε κύτταρο που περιέχει μια τιμή που δεν μπορείτε να μετατρέψετε σε τετραγωνική ρίζα. Μπορείτε να δημιουργήσετε όλα τα είδη των δυνατοτήτων ελέγχου σφαλμάτων χρησιμοποιώντας τις δομές If-Then, αλλά μπορείτε να δημιουργήσετε μια καλύτερη (και απλούστερη) λύση απλά αγνοώντας τα σφάλματα που συμβαίνουν.

Η ακόλουθη ρουτίνα το επιτυγχάνει χρησιμοποιώντας την εντολή On Error Resume Next:

Sub SelectionSqrt () Dim κυψέλη ως εμβέλεια εάν TypeName (Επιλογή) <> "range" Στη συνέχεια Exit Sub On Σφάλμα Συνέχεια Επόμενο Για κάθε κελί στην επιλογή κύτταρο. Value = Sqr (τιμή κυψέλης) Επόμενο κελί End Sub

Γενικά, μπορείτε να χρησιμοποιήσετε μια παράμετρο On Error Resume Next εάν θεωρήσετε ότι τα σφάλματα είναι αβλαβή ή δεν έχουν σημασία για την εργασία σας.
Πώς να χρησιμοποιήσετε τη δήλωση OnError στο Excel 2016 VBA - dummies

Η επιλογή των συντακτών

Η Λογιστική Λογισμικού Fiddle-Faddle - Ανδρείκελα

Η Λογιστική Λογισμικού Fiddle-Faddle - Ανδρείκελα

Απαιτεί είτε μια ολόκληρη δέσμη Fiddle-faddling με αριθμούς ή να μάθουν πώς να χρησιμοποιούν τη διπλή λογιστική βιβλία. Για να δημιουργήσετε αυτές τις δηλώσεις με ένα λογιστικό πρόγραμμα όπως το QuickBooks 2012, πρέπει να χρησιμοποιήσετε λογιστική διπλής εισόδου. Μπορείτε να δημιουργήσετε οικονομικές καταστάσεις χρησιμοποιώντας τη μέθοδο fiddle-faddle. ...

Τα εργαλεία απόφασης QuickBooks 2012 - ανδρείκελα

Τα εργαλεία απόφασης QuickBooks 2012 - ανδρείκελα

Αν είστε επαγγελματίας λογιστής, πιθανώς να μην χρησιμοποιήσετε την Απόφαση Εργαλεία εντολών στο QuickBooks 2012. Ωστόσο, θα πρέπει να γνωρίζετε ότι ορισμένες προηγούμενες εκδόσεις των QuickBooks (εκείνες οι εκδόσεις πριν από το 2009) περιλαμβάνουν μια εντολή Company → Planning & Budgeting → Decision Tools. Εάν αυτή η εντολή είναι διαθέσιμη στην έκδοση QuickBooks και εσείς ή κάποιον από τους πελάτες σας ή ...

Το Δελτίο Ταμειακών Ροών του Εγχειριδίου Επιχειρηματικού Σχεδίου του QuickBooks - ανδρείκελα

Το Δελτίο Ταμειακών Ροών του Εγχειριδίου Επιχειρηματικού Σχεδίου του QuickBooks - ανδρείκελα

16 σειρές υπολογισθέντων δεδομένων. Όπως σε άλλα χρονοδιαγράμματα, ένας προσδιοριστής περιόδου ορίζει τις περιόδους για τις οποίες υπολογίζονται οι τιμές. Η πρώτη περίοδος αποθηκεύεται στο κελί C141 ως ακέραιο 1. Οι περίοδοι που ακολουθούν αποθηκεύονται ως η προηγούμενη περίοδος συν 1. Οι άλλες τιμές της Κατάστασης Ταμειακών Ροών υπολογίζονται ...

Η επιλογή των συντακτών

Πώς να ζωγραφίζει με το Photoshop Elements 11 Βουρτσάκι με ιμπρεσιονιστές

Πώς να ζωγραφίζει με το Photoshop Elements 11 Βουρτσάκι με ιμπρεσιονιστές

11 έχει σχεδιαστεί για να ζωγραφίζει πάνω από φωτογραφίες με τρόπο που τους κάνει να μοιάζουν με έργα ζωγραφικής. Ο καλύτερος τρόπος για να εξοικειωθείτε με το Βούρτσα Ιμπρεσιονιστών είναι να ανοίξετε την αγαπημένη σας εικόνα και να πειραματιστείτε με το εργαλείο. Μπορείτε να ορίσετε διάφορες επιλογές που αλλάζουν το στυλ της ...

Πώς να οργανώσετε τις φωτογραφίες σας στο Photoshop Elements 11

Πώς να οργανώσετε τις φωτογραφίες σας στο Photoshop Elements 11

Μπορείτε να προσθέσετε τόμους φωτογραφιών στο Photoshop Στοιχεία 11 από όχι μόνο σαρωμένες εικόνες και CD / DVD, αλλά και ψηφιακές φωτογραφικές μηχανές, κινητά τηλέφωνα και tablet. Στις πρώτες ημέρες του Adobe Photoshop, περίπου στις αρχές της δεκαετίας του '90 και αργότερα όταν έφτασε το Photoshop Elements, οι περισσότερες φωτογραφίες αποκτήθηκαν από σαρωμένες εκτυπώσεις, σαρωμένες διαφάνειες, κάποιες κάμερες point-and-shoot και ...

Πώς να Paint με το εργαλείο πινέλου στο Photoshop Elements 9

Πώς να Paint με το εργαλείο πινέλου στο Photoshop Elements 9

Το Photoshop Elements δημιουργεί μαλακές κινήσεις. Πόσο μαλακά αυτά τα εγκεφαλικά επεισόδια εξαρτώνται από το ποια βούρτσα χρησιμοποιείτε. Από προεπιλογή, ακόμη και η πιο σκληρή βούρτσα έχει μια ελαφρώς μαλακή άκρη επειδή είναι αντι-αλλιώς. Η αντικατάσταση δημιουργεί μια μόνο σειρά μερικώς γεμάτων εικονοστοιχείων κατά μήκος των άκρων για να παραχθεί η ψευδαίσθηση μιας ομαλής ακμής. Μπορείτε ...

Η επιλογή των συντακτών

Βασικά στοιχεία δικτύου: Κάρτες διεπαφής δικτύου - Dummies

Βασικά στοιχεία δικτύου: Κάρτες διεπαφής δικτύου - Dummies

Κάρτα διασύνδεσης (ή NIC) για να αποκτήσετε πρόσβαση στο δίκτυο. Ένα NIC είναι συνήθως μια ξεχωριστή κάρτα προσαρμογέα που ολισθαίνει σε μία από τις υποδοχές επέκτασης της μητρικής πλακέτας του διακομιστή. Ωστόσο, οι περισσότεροι νεότεροι υπολογιστές διαθέτουν το NIC ενσωματωμένο στη μητρική πλακέτα, οπότε μια ξεχωριστή κάρτα ...

Βασικά στοιχεία δικτύου: OSI Physical Layer < < Βασικά στοιχεία δικτύου: OSI Physical Layer - dummies

Βασικά στοιχεία δικτύου: OSI Physical Layer < < Βασικά στοιχεία δικτύου: OSI Physical Layer - dummies

Το κάτω στρώμα του μοντέλου Open Systems Interconnection (OSI) Φυσική στρώση. Απευθύνεται στα φυσικά χαρακτηριστικά του δικτύου, όπως είναι τα είδη των καλωδίων που χρησιμοποιούνται για τη σύνδεση των συσκευών, οι τύποι των χρησιμοποιούμενων συνδέσμων, η διάρκεια των καλωδίων κ.λπ. Για παράδειγμα, το πρότυπο Ethernet για το καλώδιο 10BaseT καθορίζει ...