Ta vadnica bo razložila napako VBA Out of Memory Error.
Napaka VBA Out of Memory (Pomanjkanje pomnilnika VBA) se pojavi, ko je Excel med izvajanjem makra porabil vse vire vaše naprave in dobesedno zmanjka pomnilnika za nadaljevanje izračuna ali zagona kode. To se lahko zgodi, ko imate na voljo veliko aplikacij in poskusite zagnati velik makro v Excelu, ali pa, če ste v Excelu po pomoti ustvarili večno zanko.
(Za več informacij o napakah VBA glejte naš vodnik za obravnavo napak)
Vzroki za napako zaradi pomanjkanja pomnilnika
Napaka zaradi pomanjkanja pomnilnika se lahko pojavi, če delate z delovnim zvezkom, ki vsebuje veliko delovnih listov in na tisoče vrstic. Če ustvarimo zanko, ki deluje z veliko količino podatkov, lahko pride do napake zaradi pomanjkanja pomnilnika. Lahko se pojavi tudi, če delamo z več predmeti in vsak objekt nastavimo z stavkom SET, vendar nato ne počistimo sklicev na predmete med postopki ali zankami.
Naslednja zanka bi lahko na primer zagotovo povzročila napako v pomnilniku, če imate odprtih več datotek z več listi.
1234567891011121314 | Sub TestMemory ()Dim wb Kot delovni zvezekZatemni kot delovni listDim i As SingleZa vsako wb v aplikaciji. Delovni zvezkiZa vsak ws V wb.SheetsNaredi do ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell.Offset (1, 0) .IzberiZankaNaslednji wsNaslednja wbEnd Sub |
Preprečevanje napake pri zmanjkanju pomnilnika
Sprosti predmete
Če delamo z zankami in objekti, se moramo prepričati, da smo nastavili Objekt na NIČ, ko je bil uporabljen in ni več potreben - to bo sprostilo pomnilnik.
Programiranje VBA | Generator kod deluje za vas!
Prepričajte se, da se izvaja le en primerek Excela
Če delamo z velikimi datotekami in velikimi količinami podatkov, preverite, ali nimate odprtih več sej Excela - le enkrat jih je treba odpreti. To lahko preverite tako, da odprete upravitelja opravil in si ogledate, koliko primerkov Excela se izvaja.
Pritisnite Ctl+Alt+Delete na tipkovnici,
Kliknite na Upravitelj opravil in se prepričajte, da deluje samo en primerek Excela. Na spodnji sliki je en primerek z dvema oknoma.
V upravitelju opravil lahko preverimo tudi, da v ozadju ni primera Excela (tj. Ni viden).
Pomaknite se navzdol v upravitelju opravil, dokler ne vidite Ozadni procesi in se prepričajte, da Excel ni na tem seznamu programov.
Preverite velikost datoteke Excel
Pogosto obstajajo vrstice in stolpci, ki so bili dostopni pod tistimi na vaših delovnih listih, ki so dejansko uporabljeni. Excel v teh celicah uporablja pomnilnik - tudi če so te celice prazne. Velikost datoteke preverite s pritiskom na CTRL+SHIFT+END na tipkovnici, da vidite, kje se prikaže kazalec vaše celice. Če pristane precej pod zadnjo celico, ki jo uporabljate, izbrišite vse prazne vrstice in stolpce nad kazalcem celice in nato znova shranite datoteko - to bo zmanjšalo velikost datoteke Excel.
Drugi načini preverjanja spomina
Obstaja več drugih načinov za sprostitev pomnilnika v Excelu. Dobra ideja je, da zaprete Excel, če ga ne uporabljate, in ga nato odprete pozneje - to bo sprostilo ves pomnilnik, ki ga shranjuje Excel, saj nagiba k shranjevanju pomnilnika, tudi če delovni zvezek ni odprt! Vedno se prepričajte, da je vaša različica Officea posodobljena, tako da preverite, ali so v vašem računalniku na voljo posodobitve, in preverite, ali obstajajo dodatki VBA, ki se morda uporabljajo, vendar jih ne uporabljate - te lahko odstranite, da sprostite še več pomnilnika.