Εργαλεία χειρισμού σφαλμάτων για μακροεντολές Excel

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

On Error GoTo MyError

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

Υπάρχουν τρεις τύποι δηλώσεων On Error:

  • On Error GoTo SomeLabel: Ο κωδικός μεταβαίνει στην καθορισμένη ετικέτα.

  • On Error Resume Next: Το σφάλμα αγνοείται και ο κωδικός συνεχίζεται.

  • Στο σφάλμα GoTo 0: Το VBA επαναφέρει την κανονική συμπεριφορά ελέγχου σφαλμάτων.

Σε σφάλμα GoTo SomeLabel

Μερικές φορές ένα σφάλμα στον κώδικά σας σημαίνει ότι πρέπει να βγείτε με χάρη από τη διαδικασία και να δώσετε στους χρήστες σας ένα σαφές μήνυμα. Σε αυτές τις περιπτώσεις, μπορείτε να χρησιμοποιήσετε τη δήλωση On Error GoTo για να πείτε στο Excel να μεταβεί σε μια συγκεκριμένη γραμμή κώδικα.

Για παράδειγμα, στο παρακάτω μικρό κομμάτι κώδικα, λέτε στο Excel να διαιρέσει την τιμή στο κελί A1 με την τιμή στο κελί A2 και, στη συνέχεια, να τοποθετήσει την απάντηση στο κελί A3. Ανετα. Τι μπορεί να πάει στραβά;

Sub Macro1()
Εύρος ("A3"). Τιμή = Εύρος ("A1"). Τιμή / Εύρος ("A2"). Τιμή
End Sub

Όπως αποδεικνύεται, δύο σημαντικά πράγματα μπορεί να πάνε στραβά. Εάν το κελί A2 περιέχει 0, εμφανίζεται ένα σφάλμα διαίρεσης με 0. Εάν το κελί A2 περιέχει μια μη αριθμητική τιμή, λαμβάνετε ένα σφάλμα αναντιστοιχίας τύπου.

Για να αποφύγετε ένα δυσάρεστο μήνυμα σφάλματος, μπορείτε να πείτε στο Excel ότι On Error, θέλετε η εκτέλεση του κώδικα να μεταβεί στην ετικέτα που ονομάζεται MyExit.

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

Sub Macro1()
Σε σφάλμα Μετάβαση στο MyExit
Εύρος ("A3"). Τιμή = Εύρος ("A1"). Τιμή / Εύρος ("A2"). Τιμή
Έξοδος υπο
MyExit:
MsgBox "Παρακαλώ χρησιμοποιήστε έγκυρους μη μηδενικούς αριθμούς"
End Sub

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

Μερικές φορές, θέλετε το Excel να αγνοήσει ένα σφάλμα και απλώς να συνεχίσει να εκτελεί τον κώδικα. Σε αυτές τις περιπτώσεις, μπορείτε να χρησιμοποιήσετε τη δήλωση On Error Resume Next.

Για παράδειγμα, το ακόλουθο κομμάτι κώδικα προορίζεται για τη διαγραφή ενός αρχείου που ονομάζεται GhostFile.exe από τον κατάλογο C:Temp. Μετά τη διαγραφή του αρχείου, ένα ωραίο πλαίσιο μηνύματος λέει στον χρήστη ότι το αρχείο έχει φύγει:

Sub Macro1()
Σκοτώστε το "C:TempGhostFile.exe"
MsgBox "Το αρχείο έχει διαγραφεί."
End Sub

Ο κώδικας λειτουργεί άψογα εάν υπάρχει πράγματι ένα αρχείο προς διαγραφή. Αλλά εάν για κάποιο λόγο το αρχείο που ονομάζεται GhostFile.exe δεν υπάρχει στη μονάδα δίσκου C:Temp, παρουσιάζεται ένα σφάλμα.

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

Χρησιμοποιώντας τη δήλωση On Error Resume Next, ο κώδικας εκτελεί την πορεία του είτε υπάρχει είτε όχι το στοχευμένο αρχείο:

Sub Macro1()
Σφάλμα Συνέχιση Επόμενο
Σκοτώστε το "C:TempGhostFile.exe"
MsgBox "Το αρχείο έχει διαγραφεί."
End Sub

Στο Σφάλμα Μετάβαση στο 0

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

Εδώ, θέλετε πρώτα να διαγράψετε ένα αρχείο που ονομάζεται GhostFile.exe από τον κατάλογο C:Temp. Για να αποφύγετε σφάλματα που μπορεί να προέρχονται από το γεγονός ότι το στοχευμένο αρχείο δεν υπάρχει, χρησιμοποιείτε τη δήλωση On Error Resume Next. Μετά από αυτό, προσπαθείτε να κάνετε κάποια ύποπτα μαθηματικά διαιρώντας 100/Mike:

Sub Macro1()
Σφάλμα Συνέχιση Επόμενο
Σκοτώστε το "C:TempGhostFile.exe"
Εύρος ("A3"). Τιμή = 100 / "Mike"
End Sub

Η εκτέλεση αυτού του κομματιού κώδικα θα πρέπει να δημιουργήσει ένα σφάλμα λόγω των ασαφών μαθηματικών, αλλά δεν συμβαίνει. Γιατί; Επειδή η τελευταία εντολή που δώσατε στον κωδικό ήταν On Error Resume Next. Οποιοδήποτε σφάλμα παρουσιαστεί μετά από αυτήν τη γραμμή ουσιαστικά αγνοείται.

Για να διορθώσετε αυτό το πρόβλημα, μπορείτε να χρησιμοποιήσετε τη δήλωση On Error GoTo 0 για να συνεχίσετε την κανονική συμπεριφορά ελέγχου σφαλμάτων:

Sub Macro1()
Σφάλμα Συνέχιση Επόμενο
Σκοτώστε το "C:TempGhostFile.exe"
Στο Σφάλμα Μετάβαση στο 0
Εύρος ("A3"). Τιμή = 100 / "Mike"
End Sub

Αυτός ο κωδικός θα αγνοήσει τα σφάλματα μέχρι τη δήλωση On Error GoTo 0. Μετά από αυτήν τη δήλωση, ο κώδικας επιστρέφει στον κανονικό έλεγχο σφαλμάτων και ενεργοποιεί το αναμενόμενο σφάλμα που προκύπτει από τα ασαφή μαθηματικά.


Πώς να αποκλείσετε το Microsoft Word από το άνοιγμα αρχείων σε λειτουργία μόνο για ανάγνωση στα Windows

Πώς να αποκλείσετε το Microsoft Word από το άνοιγμα αρχείων σε λειτουργία μόνο για ανάγνωση στα Windows

Πώς να αποκλείσετε το Microsoft Word από το άνοιγμα αρχείων σε λειτουργία μόνο για ανάγνωση στα Windows Το Microsoft Word ανοίγει αρχεία σε λειτουργία μόνο για ανάγνωση, καθιστώντας αδύνατη την επεξεργασία του; Μην ανησυχείτε, οι μέθοδοι είναι παρακάτω

Πώς να διορθώσετε τη λανθασμένη εκτύπωση εγγράφων του Microsoft Word

Πώς να διορθώσετε τη λανθασμένη εκτύπωση εγγράφων του Microsoft Word

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

Διαγράψτε τα σχέδια με στυλό και επισημάνσεις στις διαφάνειες του PowerPoint σας

Διαγράψτε τα σχέδια με στυλό και επισημάνσεις στις διαφάνειες του PowerPoint σας

Εάν έχετε χρησιμοποιήσει το στυλό ή το highlighter για να σχεδιάσετε στις διαφάνειες του PowerPoint κατά τη διάρκεια μιας παρουσίασης, μπορείτε να αποθηκεύσετε τα σχέδια για την επόμενη παρουσίαση ή να τα σβήσετε, ώστε την επόμενη φορά που θα το δείξετε να ξεκινήσετε με καθαρές διαφάνειες PowerPoint. Ακολουθήστε αυτές τις οδηγίες για να διαγράψετε σχέδια με στυλό και επισημάνσεις: Σβήσιμο γραμμών μία στο […]

Περιεχόμενα της βιβλιοθήκης στυλ στο SharePoint 2010

Περιεχόμενα της βιβλιοθήκης στυλ στο SharePoint 2010

Η βιβλιοθήκη στυλ περιέχει αρχεία CSS, αρχεία επεκτάσιμης γλώσσας φύλλου στυλ (XSL) και εικόνες που χρησιμοποιούνται από προκαθορισμένες κύριες σελίδες, διατάξεις σελίδων και στοιχεία ελέγχου στο SharePoint 2010. Για να εντοπίσετε αρχεία CSS στη βιβλιοθήκη στυλ μιας τοποθεσίας δημοσίευσης: Επιλέξτε Ενέργειες τοποθεσίας→ Προβολή Όλο το περιεχόμενο του ιστότοπου. Εμφανίζεται το περιεχόμενο του ιστότοπου. Η βιβλιοθήκη Style βρίσκεται στο […]

Μορφοποίηση αριθμών σε χιλιάδες και εκατομμύρια σε αναφορές του Excel

Μορφοποίηση αριθμών σε χιλιάδες και εκατομμύρια σε αναφορές του Excel

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

Τρόπος κοινής χρήσης και παρακολούθησης τοποθεσιών του SharePoint

Τρόπος κοινής χρήσης και παρακολούθησης τοποθεσιών του SharePoint

Μάθετε πώς να χρησιμοποιείτε τα εργαλεία κοινωνικής δικτύωσης του SharePoints που επιτρέπουν σε άτομα και ομάδες να επικοινωνούν, να συνεργάζονται, να μοιράζονται και να συνδέονται.

Πώς να μετατρέψετε ημερομηνίες σε μορφές Julian στο Excel

Πώς να μετατρέψετε ημερομηνίες σε μορφές Julian στο Excel

Οι ημερομηνίες του Ιουλιανού χρησιμοποιούνται συχνά σε περιβάλλοντα παραγωγής ως χρονική σήμανση και γρήγορη αναφορά για έναν αριθμό παρτίδας. Αυτός ο τύπος κωδικοποίησης ημερομηνίας επιτρέπει στους λιανοπωλητές, τους καταναλωτές και τους αντιπροσώπους υπηρεσιών να προσδιορίσουν πότε κατασκευάστηκε ένα προϊόν και, επομένως, την ηλικία του προϊόντος. Οι ημερομηνίες του Ιουλιανού χρησιμοποιούνται επίσης στον προγραμματισμό, τον στρατό και την αστρονομία. Διαφορετικές […]

Πώς να δημιουργήσετε μια εφαρμογή Web Access

Πώς να δημιουργήσετε μια εφαρμογή Web Access

Μπορείτε να δημιουργήσετε μια εφαρμογή Ιστού στην Access 2016. Τι είναι λοιπόν μια εφαρμογή Ιστού; Λοιπόν, ο Ιστός σημαίνει ότι είναι διαδικτυακός και η εφαρμογή είναι απλώς συντομογραφία της «εφαρμογής». Μια προσαρμοσμένη εφαρμογή Ιστού είναι μια διαδικτυακή εφαρμογή βάσης δεδομένων στην οποία έχει πρόσβαση από το cloud χρησιμοποιώντας ένα πρόγραμμα περιήγησης. Δημιουργείτε και συντηρείτε την εφαρμογή Ιστού στην έκδοση για υπολογιστές […]

Γραμμή γρήγορης εκκίνησης στο SharePoint 2010

Γραμμή γρήγορης εκκίνησης στο SharePoint 2010

Οι περισσότερες σελίδες στο SharePoint 2010 εμφανίζουν μια λίστα με συνδέσμους πλοήγησης στη γραμμή γρήγορης εκκίνησης στην αριστερή πλευρά της σελίδας. Η γραμμή γρήγορης εκκίνησης εμφανίζει συνδέσμους προς επιλεγμένο περιεχόμενο ιστότοπου, όπως λίστες, βιβλιοθήκες, τοποθεσίες και σελίδες δημοσίευσης. Η γραμμή γρήγορης εκκίνησης περιλαμβάνει δύο πολύ σημαντικούς συνδέσμους: Σύνδεσμος όλου του περιεχομένου του ιστότοπου: Η […]

Τι σημαίνουν τα μηνύματα σφάλματος επίλυσης στο Excel;

Τι σημαίνουν τα μηνύματα σφάλματος επίλυσης στο Excel;

Για απλά προβλήματα, ο Επίλυση στο Excel συνήθως βρίσκει γρήγορα τις βέλτιστες τιμές μεταβλητής Επίλυσης για τη συνάρτηση αντικειμένου. Ωστόσο, σε ορισμένες περιπτώσεις, ο Επίλυση δυσκολεύεται να βρει τις τιμές της μεταβλητής Επίλυσης που βελτιστοποιούν τη συνάρτηση στόχου. Σε αυτές τις περιπτώσεις, ο Επίλυση εμφανίζει συνήθως ένα μήνυμα ή ένα μήνυμα σφάλματος που περιγράφει ή συζητά το πρόβλημα που […]