Σφάλμα υπερφόρτωσης VBA | Πώς να διορθώσετε το σφάλμα χρόνου υπερχείλισης χρόνου εκτέλεσης;

Σφάλμα υπερφόρτωσης του Excel VBA

Τα λάθη αποτελούν αναπόσπαστο μέρος οποιασδήποτε γλώσσας κωδικοποίησης, αλλά το να ανακαλύπτετε γιατί έρχεται αυτό το σφάλμα είναι αυτό που σας κάνει να ξεχωρίζετε από το πλήθος των συνεντεύξεων. Τα σφάλματα δεν είναι παράξενα στην κωδικοποίηση VBA, τα σφάλματα δεν είναι σκόπιμα, έτσι ώστε η εύρεση της αιτίας για το σφάλμα καθιστά τη δύσκολη εργασία. Στο VBA έχουμε μερικά από τα προκαθορισμένα σφάλματα και το να γνωρίζουμε για αυτά σας κάνει να διορθώσετε το σφάλμα πολύ γρήγορα. Σε αυτό το άρθρο, θα σας δείξουμε το RUN TIME ERROR 6: OverFlow. Ακολουθήστε το πλήρες άρθρο για να μάθετε σχετικά με το σφάλμα, τους λόγους για το σφάλμα υπερχείλισης VBA και πώς να τα διορθώσετε.

Τι είναι το σφάλμα χρόνου εκτέλεσης 6: Σφάλμα υπερχείλισης στο VBA;

Όταν δηλώνουμε τη μεταβλητή τους εκχωρούμε έναν τύπο δεδομένων. Πρέπει να γνωρίζουμε πλήρως τα πλεονεκτήματα και τα μειονεκτήματα κάθε τύπου δεδομένων. Αυτό όπου το σφάλμα χρόνου εκτέλεσης 6: OverFlow έρχεται στην εικόνα. Όταν υπερφορτώνουμε τον τύπο δεδομένων με την τιμή που είναι μεγαλύτερη από τη χωρητικότητα του τύπου δεδομένων, τότε θα λάβουμε αυτό το σφάλμα.

Για παράδειγμα: Εάν δηλώσετε τη μεταβλητή ως Byte.

Αχνός αριθμός ως Byte

Ο τύπος δεδομένων byte μπορεί να διατηρήσει τιμές από 0 έως 255. Τώρα θα εκχωρήσω την τιμή ως 240.

Αριθμός = 240

Αυτό θα πρέπει να λειτουργεί καλά επειδή η τιμή που έχουμε εκχωρήσει είναι μικρότερη από το όριο της τιμής Byte των 255. Τη στιγμή που ορίζουμε την τιμή που είναι μεγαλύτερη από 255, οδηγεί στο σφάλμα του χρόνου εκτέλεσης Σφάλμα 6: OverFlow.

Αυτή είναι η γενική επισκόπηση του σφάλματος χρόνου εκτέλεσης 6: OverFlow. Θα δούμε μερικά από τα παραδείγματα λεπτομερώς.

Παραδείγματα σφάλματος χρόνου εκτέλεσης 6: OverFlow στο VBA

Ας δούμε μερικά παραδείγματα σφάλματος VBA OverFlow στο Excel.

Παράδειγμα 1: Σφάλμα OverFlow με τύπο δεδομένων Byte

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

Κώδικας:

 Sub OverFlowError_Example1 () Dim Dim As Byte Number = 256 MsgBox Number End Sub 

Για τη μεταβλητή "Αριθμός" έχω αντιστοιχίσει την τιμή ως 256. Όταν εκτελώ αυτόν τον κωδικό θα λάβουμε το παρακάτω σφάλμα.

Αυτό συμβαίνει επειδή ο τύπος δεδομένων Byte μπορεί να διατηρήσει τιμές από 0 έως 255. Επομένως προκαλεί σφάλμα Για να διορθώσουμε το σφάλμα είτε πρέπει να αλλάξουμε τον τύπο δεδομένων είτε να μειώσουμε την τιμή που έχουμε εκχωρήσει στη μεταβλητή "Αριθμός".

Παράδειγμα 2: Σφάλμα υπερφόρτωσης VBA με τύπο δεδομένων ακέραιου αριθμού

Ο ακέραιος αριθμός VBA είναι ένας τύπος δεδομένων που μπορεί να διατηρεί τιμές από -32768 έως 32767. Για παράδειγμα, δείτε τον παρακάτω κώδικα.

Κώδικας:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 25656 MsgBox MyValue End Sub 

Όταν εκτελώ αυτόν τον κωδικό θα λάβουμε την τιμή της μεταβλητής "MyValue" στο πλαίσιο μηνύματος, δηλαδή 25656.

Τώρα θα εκχωρήσω εκ νέου τον αριθμό στη μεταβλητή ως "45654".

Κώδικας:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 45654 MsgBox MyValue End Sub 

Τώρα, αν προσπαθήσω να εκτελέσω τον κωδικό, θα προκαλέσει σφάλμα, επειδή ο τύπος δεδομένων που δηλώσαμε μπορεί να κρατήσει το μέγιστο μόνο 32767 για θετικούς αριθμούς και για το αρνητικό όριο είναι -32768

Παράδειγμα 3: Σφάλμα υπερφόρτωσης VBA με μακρύ τύπο δεδομένων

Ο μεγάλος τύπος δεδομένων είναι ο πιο συχνά χρησιμοποιούμενος τύπος δεδομένων στο Excel VBA. Αυτό μπορεί να διατηρήσει τιμές από –2.147.483.648 έως 2.147.486.647. Οτιδήποτε παραπάνω θα προκαλέσει σφάλμα.

Κώδικας:

 Sub OverFlowError_Example3 () Dim MyValue Όσο καιρό MyValue = 5000 * 457 MsgBox MyValue End Sub 

Αυτό θα προκαλέσει σφάλμα υπερχείλισης.

Για να διορθώσουμε αυτό το ζήτημα πρέπει να χρησιμοποιήσουμε τη συνάρτηση CLNG στο VBA. Παρακάτω είναι ένα παράδειγμα του ίδιου.

Κώδικας:

 Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = CLng (5000) * 457 MsgBox MyValue End Sub 

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

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

Μπορείτε να κατεβάσετε αυτό το πρότυπο VBA Overflow Error Excel Template - Πρότυπο VBA OverFlow Error Excel