VBA Σφάλμα εκτός μνήμης

Αυτό το σεμινάριο θα εξηγήσει το σφάλμα VBA εκτός μνήμης.

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

(Ανατρέξτε στον Οδηγό χειρισμού σφαλμάτων για περισσότερες πληροφορίες σχετικά με τα Σφάλματα VBA)

Αιτίες σφάλματος εκτός μνήμης

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

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

1234567891011121314 Sub TestMemory ()Dim wb Ως βιβλίο εργασίαςDim ws Ως φύλλο εργασίαςDim i As SingleΓια κάθε wb σε εφαρμογή. Βιβλία εργασίαςΓια κάθε ws Σε wb. ΦύλλαΕκτελέστε μέχρι ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell.Offset (1, 0). ΕπιλέξτεΒρόχοςΕπόμενο wsΕπόμενο wbΤέλος υπο

Αποτροπή σφάλματος εκτός μνήμης

Αντικείμενα απελευθέρωσης

Εάν εργαζόμαστε με βρόχους και αντικείμενα, πρέπει να βεβαιωθούμε ότι έχουμε θέσει το αντικείμενο σε ΤΙΠΟΤΑ όταν έχει χρησιμοποιηθεί και δεν χρειάζεται πλέον - αυτό θα απελευθερώσει μνήμη.

Προγραμματισμός VBA | Το Code Generator λειτουργεί για εσάς!

Βεβαιωθείτε ότι εκτελείται μόνο μία περίπτωση του Excel

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

Τύπος Ctl+Alt+Delete στο πληκτρολόγιο,

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

Μπορούμε επίσης να ελέγξουμε στη Διαχείριση εργασιών ότι δεν υπάρχει παρουσία του Excel στο παρασκήνιο (δηλαδή δεν είναι ορατό).

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

Ελέγξτε το μέγεθος του αρχείου Excel

Συχνά υπάρχουν σειρές και στήλες στις οποίες έχετε πρόσβαση κάτω από αυτές των φύλλων εργασίας σας που χρησιμοποιούνται στην πραγματικότητα. Το Excel χρησιμοποιεί μνήμη σε αυτά τα κελιά - ακόμα κι αν αυτά τα κελιά είναι κενά. Ελέγξτε το μέγεθος του αρχείου πατώντας CTRL+SHIFT+ΤΕΛΟΣ στο πληκτρολόγιο για να δείτε πού βρίσκεται ο δείκτης του κελιού σας. Εάν προσγειωθεί πολύ κάτω από το τελευταίο κελί που χρησιμοποιείτε, βεβαιωθείτε ότι έχετε διαγράψει όλες τις κενές γραμμές και στήλες πάνω από τον δείκτη κελιού και, στη συνέχεια, αποθηκεύσετε ξανά το αρχείο - αυτό θα μειώσει το μέγεθος του αρχείου Excel.

Άλλοι τρόποι ελέγχου της μνήμης

Υπάρχουν διάφοροι άλλοι τρόποι απελευθέρωσης μνήμης στο Excel. Μια καλή ιδέα είναι να κλείσετε το Excel εάν δεν το χρησιμοποιείτε και στη συνέχεια να το ανοίξετε αργότερα - αυτό θα ελευθερώσει οποιαδήποτε μνήμη που αποθηκεύει το Excel καθώς τείνει να αποθηκεύει μνήμη ακόμη και όταν ένα βιβλίο εργασίας δεν είναι ανοιχτό! Βεβαιωθείτε πάντα ότι η έκδοση του Office είναι ενημερωμένη, ελέγχοντας για ενημερώσεις στον υπολογιστή σας και ελέγξτε για τυχόν πρόσθετα VBA που μπορεί να χρησιμοποιούνται, αλλά δεν τα χρησιμοποιείτε - μπορείτε να τα απεγκαταστήσετε για να απελευθερώσετε ακόμη περισσότερη μνήμη.

wave wave wave wave wave