See õpetus selgitab VBA mälu lõppemise viga.
VBA Vaba mälu viga ilmneb siis, kui Excel on makro käitamise ajal kasutanud teie arvuti kõiki ressursse ja sõna otseses mõttes saab mälu otsa, et jätkata koodi arvutamist või käivitamist. See võib juhtuda siis, kui teil on palju rakendusi ja proovite Excelis suurt makro käivitada või kui olete ekslikult loonud Excelis igavese silmuse.
(VBA vigade kohta lisateabe saamiseks vaadake meie vigade käsitlemise juhendit)
Mälu puudumise tõrke põhjused
Kui töötate töövihikuga, mis sisaldab palju töölehti ja tuhandeid ridu, võib tekkida viga mälust. Kui loome ahela, mis töötab suure andmemahuga, võib ilmneda viga mälus. See võib juhtuda ka siis, kui töötame mitme objektiga ja seadistame iga objekti SET -lausega, kuid ei kustuta seejärel viiteid objektidele protseduuride või silmuste vahel.
Näiteks võib järgmine tsükkel kindlasti põhjustada mälutõrke, kui teil on mitu lehte avatud mitme lehega.
1234567891011121314 | Alam TestMemory ()Dim wb TöövihikunaDim ws töölehenaDim i As SingleIga wb jaoks rakenduses. TöövihikudIga ws jaoks wb. LehedTehke kuni ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell. Offset (1, 0). ValigeLoopJärgmine wsJärgmine wbEnd Sub |
Mälu lõppemise tõrke ennetamine
Vabasta objektid
Kui töötame silmuste ja objektidega, peame veenduma, et seadsime objektile MITTE MINGI, kui seda on kasutatud ja seda pole enam vaja - see vabastab mälu.
VBA programmeerimine | Koodigeneraator töötab teie jaoks!
Veenduge, et töötab ainult üks Exceli eksemplar
Kui töötame suurte failide ja tohutu hulga andmetega, kontrollige, kas teil pole mitu Exceli seanssi avatud - see peab olema lihtsalt üks kord avatud. Selle kontrollimise viis on minna ülesannete haldurisse ja vaadata, kui palju Exceli eksemplare töötab.
Vajutage Ctl+Alt+Kustuta klaviatuuril,
Kliki Ülesannete haldur ja veenduge, et töötab ainult üks Exceli eksemplar. Alloleval graafikul on üks eksemplar, millel on 2 akent.
Samuti saame Task Manageris kontrollida, kas taustal ei tööta ühtegi eksemplari (st pole nähtav).
Kerige tegumihalduris alla, kuni näete Taustaprotsessid ja veenduge, et Excel pole selles programmide loendis.
Kontrollige oma Exceli faili suurust
Sageli on ridu ja veerge, millele on juurdepääs nende töölehtede rea all, mida tegelikult kasutatakse. Excel kasutab nendes lahtrites mälu - isegi kui need lahtrid on tühjad. Kontrollige faili suurust, vajutades CTRL+SHIFT+LÕPP klaviatuuril, et näha, kuhu teie lahtri osuti maandub. Kui see jääb viimase kasutatava lahtri alla, kustutage kindlasti lahtri kursori kohal olevad tühjad read ja veerud ning salvestage fail uuesti - see vähendab teie Exceli faili suurust.
Muud viisid mälu kontrollimiseks
Excelis mälu vabastamiseks on mitmeid muid viise. Hea mõte on Excel sulgeda, kui te seda ei kasuta, ja avada see hiljem - see vabastab mälu, mida Excel salvestab, kuna see kipub mälu salvestama ka siis, kui töövihik pole avatud! Veenduge alati, et teie Office'i versioon oleks ajakohane, kontrollides oma arvutis värskenduste olemasolu ja kõiki VBA lisandmooduleid, mida võidakse kasutada, kuid mida te ei kasuta - saate need veelgi rohkem mälu vabastamiseks desinstallida.