Austraaliast pärit Steven kirjutab:
Olen loonud VBA makro, mis peab ühest töölehest looma umbes 50 diagrammi. Probleem on selles, et iga kord, kui käivitan programmi, kui jõuan 33. graafikule, kuvatakse tõrketeade "Pole piisavalt mälu", siis Exceli programm lukustub ja pean programmi lõpetama. Minu arvutis on 256 mega RAM-i ja ma kasutan Windows NT operatsioonisüsteemis rakendust Excel 97.
Kas loote iga diagrammi eraldi diagrammilehena? Excel suudab töölehel töödelda 16 miljonit lahtrit, kuid vaikne saladus on see, et ei saa hakkama paljude töölehtedega. Abifail ütleb, et töölehtede arv on piiratud "vaba mäluga".
Kogen regulaarselt probleemi, mis teil on. See on kohutavalt masendav, sest kunagi ei või teada, millal see kukub. Kui Visual Basic annaks teile tabatava tõrke, võite makro peatada, faili salvestada ja alustada uue failiga. Kuid nad ei tee seda - saate lihtsalt krahhi.
Olen näinud, et krahh toimus juba 130 töölehel ja juba 40. Peate oma süsteemis hindama, kuhu see kokku kukub, ja siis makro sisse loendur panna. Kui arvate, et lähete kokku 32 diagrammi järel, peatage protsess 30 graafiku juures, salvestage need uude töövihikusse, sulgege see töövihik ja alustage nende uuesti uues töövihikus loomist.
See pole ilus, kuid see on ainus lahendus, mille olen leidnud.
Veel üks mõte - veenduge, et sulgeksite kõik moodulid ja kasutajavormid Visual Basic Editoris, kasutades paremas ülanurgas olevat tähte "X". Olen avastanud, et kui sulgete enne Visro Basicu kõik komponendid enne makro käivitamist, saate vabastada natuke rohkem mälu ja pigistada veel mõned graafikud "saadaolevasse mällu".
Eespool rääkisin mälu säästmiseks tegevuste tegemisest. Steven kirjutas täna suurepärase avastusega tagasi:
Leidsin, et kui määran Charts AutoScaleFonti väärtuseks False, võiksin luua umbes 120 diagrammi, mis on minu probleemi lahendanud.
Miks see nii on, pole mul aimugi, aga see on Excel. Suurepärane näpunäide - tõmmake see mälu säilitamiseks ebaselge meetodina.