Muistiviesti ei riitä - Excel-vinkit

Steven Australiasta kirjoittaa:

Olen luonut VBA-makron, jonka on luotava noin 50 kaaviota yhdestä laskentataulukosta. Ongelmana on, että aina kun suoritan ohjelman, kun pääsen 33. kaavioon, virheilmoitus näyttää "Ei tarpeeksi muistia", sitten Excel-ohjelma lukittuu ja minun on lopetettava ohjelma. Minulla on 256 megatavua RAM-muistia tietokoneellani ja käytän Excel 97: tä Windows NT -käyttöjärjestelmässä.

Luodaanko kukin kaavio omaksi kaaviosta? Excel pystyy käsittelemään 16 miljoonaa solua laskentataulukossa, mutta hiljainen salaisuus on, että se ei pysty käsittelemään paljon laskentataulukoita. Ohjetiedoston mukaan laskentataulukoiden määrää rajoittaa "käytettävissä oleva muisti".

Koen säännöllisesti ongelman, joka sinulla on. Se on kamalaa turhauttavaa, koska et koskaan tiedä, milloin se kaatuu. Jos Visual Basic antaisi sinulle jäljitettävissä olevan virheen, voit pysäyttää makron, tallentaa tiedoston ja aloittaa uudessa tiedostossa. Mutta he eivät - saat vain kaatumisen.

Olen nähnyt kaatumisen tapahtuvan jo 130 laskentataulukossa ja jo 40. Sinun on arvioitava, missä se kaatuu järjestelmässäsi, ja sitten laittaa laskuri makroon. Jos luulet kaatuvan 32 kaavion jälkeen, lopeta prosessi 30 kaaviossa, tallenna ne uuteen työkirjaan, sulje työkirja ja aloita niiden luominen uudessa työkirjassa.

Tämä ei ole hieno, mutta se on ainoa ratkaisu, jonka olen löytänyt.

Toinen ajatus - muista sulkea kukin moduuli ja käyttäjämuoto Visual Basic Editorissa käyttämällä oikeassa yläkulmassa olevaa "X" -merkkiä. Olen havainnut, että yksinkertaisesti sulkemalla kaikki Visual Basicin komponentit ennen makron suorittamista, voit vapauttaa hieman enemmän muistia ja mahdollisesti puristaa vielä muutaman kaavion "käytettävissä olevaan muistiin".

Edellä puhuin muistin säästämiseksi tehtävistä asioista. Steven kirjoitti tänään erinomaisella löytöllä:

Huomasin, että jos asetan Charts AutoScaleFont -asetukseksi False, voisin luoda noin 120 kaavion, mikä on ratkaissut ongelmani.

Miksi tämä on niin, minulla ei ole aavistustakaan, mutta se on Excel. Erinomainen vinkki - piilota tämä epäselväksi menetelmäksi muistin säästämiseksi.

Mielenkiintoisia artikkeleita...