Správa o nedostatku pamäte - tipy pre Excel

Steven z Austrálie píše:

Vytvoril som makro VBA, ktoré musí vytvoriť asi 50 grafov z jedného pracovného hárka. Problém je v tom, že vždy, keď spustím program, keď sa dostanem k 33. grafu, zobrazí sa chybové hlásenie „Nedostatok pamäte“, potom sa program Excel uzamkne a musím program ukončiť. Mám v počítači 256 MB RAM a používam program Excel 97 v operačnom systéme Windows NT.

Vytvárate každý graf ako svoj vlastný hárok s grafom? Excel dokáže spracovať 16 miliónov buniek na pracovnom hárku, tichým tajomstvom však je, že nedokáže spracovať množstvo pracovných listov. V súbore pomocníka sa uvádza, že počet pracovných hárkov je obmedzený „dostupnou pamäťou“.

Pravidelne zažívam problém, ktorý máte. Je to strašne frustrujúce, pretože nikdy neviete, kedy sa má zrútiť. Ak by vám jazyk Visual Basic priniesol zachytiteľnú chybu, mohli by ste makro zastaviť, uložiť súbor a začať v novom súbore. Ale oni nie - dostanete len haváriu.

Zrážku som videl až v 130 pracovných hárkoch a už v 40. Musíte odhadnúť, kde dôjde k zrúteniu vo vašom systéme, a potom do počítadla vložiť počítadlo. Ak si myslíte, že dôjde k zlyhaniu po 32 grafoch, zastavte proces na 30 grafoch, uložte ich do nového zošita, zatvorte tento zošit a začnite ich znova vytvárať v novom zošite.

To nie je pekné, ale je to jediné riešenie, ktoré som našiel.

Ďalšia myšlienka - nezabudnite zavrieť každý modul a formulár používateľa v editore jazyka Visual Basic pomocou znaku „X“ v pravom hornom rohu. Zistil som, že jednoduchým zatvorením všetkých komponentov v jazyku Visual Basic pred spustením makra môžete uvoľniť trochu viac pamäte a prípadne vtesnať niekoľko ďalších grafov do „dostupnej pamäte“.

Hore som hovoril o tom, že by som mal robiť veci pre šetrenie pamäte. Steven dnes odpísal vynikajúcim objavom:

Zistil som, že keď nastavím Charts AutoScaleFont na False, môžem vytvoriť asi 120 grafov, ktoré môj problém vyriešili.

Prečo to tak je, netuším, ale to je Excel. Vynikajúci tip - tento zastrčte ako nejasnú metódu na zachovanie pamäte.

Zaujímavé články...