Δεν είναι αρκετό μήνυμα μνήμης - Συμβουλές για το Excel

Ο Steven από την Αυστραλία γράφει:

Έχω δημιουργήσει μια μακροεντολή VBA η οποία πρέπει να δημιουργήσει περίπου 50 γραφήματα από ένα φύλλο εργασίας. Το πρόβλημα είναι ότι κάθε φορά που τρέχω το πρόγραμμα όταν φτάνω στο 33ο γράφημα εμφανίζεται ένα μήνυμα σφάλματος "Δεν υπάρχει αρκετή μνήμη", τότε το πρόγραμμα Excel κλειδώνει και πρέπει να τερματίσω το πρόγραμμα. Έχω 256Meg RAM στον υπολογιστή μου και χρησιμοποιώ το Excel 97 σε ένα λειτουργικό σύστημα Windows NT.

Δημιουργείτε κάθε γράφημα ως δικό του φύλλο γραφήματος; Το Excel μπορεί να χειριστεί 16 εκατομμύρια κελιά σε ένα φύλλο εργασίας, αλλά το αθόρυβο μυστικό είναι ότι δεν μπορεί να χειριστεί πολλά φύλλα εργασίας. Το αρχείο βοήθειας αναφέρει ότι ο αριθμός των φύλλων εργασίας περιορίζεται από τη "διαθέσιμη μνήμη".

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

Έχω δει το σφάλμα να συμβαίνει τόσο αργά όσο 130 φύλλα εργασίας και ήδη από 40. Πρέπει να μετρήσετε πού πρόκειται να συντριβεί στο σύστημά σας και, στη συνέχεια, να βάλετε έναν μετρητή στη μακροεντολή. Εάν πιστεύετε ότι πρόκειται να συντριβεί μετά από 32 γραφήματα, τότε σταματήστε τη διαδικασία σε 30 γραφήματα, αποθηκεύστε τα σε ένα νέο βιβλίο εργασίας, κλείστε αυτό το βιβλίο εργασίας και ξεκινήστε να τα δημιουργείτε ξανά σε ένα νέο βιβλίο εργασίας.

Αυτό δεν είναι όμορφο, αλλά είναι η μόνη λύση που έχω βρει.

Μια άλλη σκέψη - βεβαιωθείτε ότι έχετε κλείσει κάθε ενότητα και φόρμα χρήστη στον Επεξεργαστή Visual Basic χρησιμοποιώντας το "X" στην επάνω δεξιά γωνία. Έχω διαπιστώσει ότι απλώς κλείνοντας όλα τα στοιχεία της Visual Basic πριν εκτελέσετε τη μακροεντολή, μπορείτε να ελευθερώσετε λίγο περισσότερη μνήμη και πιθανώς να συμπιέσετε μερικά ακόμη γραφήματα στη "διαθέσιμη μνήμη".

Πάνω, μίλησα για να κάνω πράγματα για τη διατήρηση της μνήμης. Ο Στίβεν έγραψε σήμερα με μια εξαιρετική ανακάλυψη:

Βρήκα ότι αν ορίσω το Charts AutoScaleFont σε False, θα μπορούσα να δημιουργήσω περίπου 120 γράφημα, το οποίο έλυσε το πρόβλημά μου.

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

ενδιαφέροντα άρθρα...