Zpráva s nedostatkem paměti - tipy pro Excel

Steven z Austrálie napsal:

Vytvořil jsem makro VBA, které musí vytvořit asi 50 grafů z jednoho listu. Problém je v tom, že pokaždé, když spustím program, když se dostanu do 33. grafu, zobrazí se chybová zpráva „Nedostatek paměti“, pak se program Excel uzamkne a musím program ukončit. Mám 256 MB paměti RAM v počítači a používám aplikaci Excel 97 v operačním systému Windows NT.

Vytváříte každý graf jako svůj vlastní list s grafy? Excel dokáže zpracovat 16 milionů buněk na listu, ale tichým tajemstvím je, že nedokáže zpracovat mnoho listů. Soubor nápovědy uvádí, že počet listů je omezen „dostupnou pamětí“.

Pravidelně zažívám problém, který máte. Je to strašně frustrující, protože nikdy nevíte, kdy má dojít k havárii. Pokud by vám Visual Basic poskytl zachycitelnou chybu, můžete makro zastavit, uložit soubor a začít v novém souboru. Ale oni ne - prostě dostanete havárii.

Havárii jsem viděl až ve 130 pracovních listech a již ve 40. Musíte odhadnout, kde ve vašem systému dojde ke zhroucení, a poté do počítadla vložit makro. Pokud si myslíte, že dojde k selhání po 32 grafech, zastavte proces na 30 grafech, uložte je do nového sešitu, zavřete tento sešit a začněte je znovu vytvářet v novém sešitu.

To není hezké, ale je to jediné řešení, které jsem našel.

Další myšlenka - nezapomeňte zavřít každý modul a formulář uživatele v editoru jazyka pomocí "X" v pravém horním rohu. Zjistil jsem, že pouhým zavřením všech komponent v jazyce Visual Basic před spuštěním makra můžete uvolnit trochu více paměti a případně vložit několik dalších grafů do „dostupné paměti“.

Nahoře jsem mluvil o tom, jak dělat věci pro zachování paměti. Steven dnes napsal skvělý objev:

Zjistil jsem, že když nastavím Charts AutoScaleFont na False, mohu vytvořit asi 120 grafů, které můj problém vyřešily.

Proč je to tak, nemám ponětí, ale to je Excel. Vynikající tip - zastrčte tento jako obskurní metodu pro zachování paměti.

Zajímavé články...