Tento tutoriál vysvětlí chybu VBA Out of Memory Error.
K chybě VBA nedostatek paměti dochází, když Excel použil všechny prostředky vašeho počítače při spuštění makra a doslova mu došlo paměť pro provádění výpočtu nebo spouštění kódu. K tomu může dojít, když máte spuštěno mnoho aplikací a pokusíte se spustit velké makro v Excelu, nebo když jste omylem vytvořili trvalou smyčku v Excelu.
(Další informace o chybách VBA najdete v naší příručce pro zpracování chyb)
Příčiny chyby nedostatku paměti
Pokud pracujete se sešitem, který obsahuje mnoho listů a tisíce řádků, může dojít k chybě paměti. Pokud vytvoříme smyčku, která pracuje s velkým objemem dat, může dojít k chybě paměti. Mohlo by to také nastat, pokud pracujeme s více objekty a nastavíme každý objekt příkazem SET, ale pak nevymažeme odkazy na objekty mezi procedurami nebo smyčkami.
Například následující smyčka by rozhodně mohla způsobit chybu paměti, pokud máte otevřeno více souborů s více listy.
1234567891011121314 | Dílčí testovací paměť ()Dim wb jako sešitDim ws As WorksheetDim i As SinglePro každý wb v aplikaci. Pracovní sešityZa každé ws v wb. ListyDělat do ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell.Offset (1, 0). VyberteSmyčkaDalší wsDalší wbEnd Sub |
Prevence chyby nedostatku paměti
Uvolněte objekty
Pokud pracujeme se smyčkami a objekty, musíme se ujistit, že jsme Objekt nastavili na NIC, jakmile byl použit, a již není potřeba - tím se uvolní paměť.
Programování VBA | Generátor kódu pracuje pro vás!
Ujistěte se, že běží pouze jedna instance aplikace Excel
Pokud pracujeme s velkými soubory a velkým množstvím dat, zkontrolujte, zda nemáte otevřeno více relací aplikace Excel - stačí ji otevřít pouze jednou. Chcete -li to zkontrolovat, přejděte do Správce úloh a zjistěte, kolik instancí aplikace Excel je spuštěno.
lis Ctl+Alt+Odstranit na klávesnici,
Klikněte na Správce úloh a ujistěte se, že je spuštěna pouze jedna instance aplikace Excel. Na obrázku níže je jedna instance se 2 okny.
Ve Správci úloh můžeme také zkontrolovat, zda na pozadí neběží žádná instance aplikace Excel (tj. Není viditelná).
Přejděte dolů ve Správci úloh, dokud neuvidíte Procesy na pozadí a ujistěte se, že aplikace Excel není v tomto seznamu programů.
Zkontrolujte velikost souboru aplikace Excel
Často existují řádky a sloupce, které byly přístupné pod těmi ve vašich listech, které jsou skutečně použity. Excel v těchto buňkách používá paměť - i když jsou tyto buňky prázdné. Stisknutím tlačítka zkontrolujte velikost souboru CTRL+SHIFT+END na klávesnici, abyste zjistili, kde váš ukazatel buňky přistává. Pokud se dostane hluboko pod poslední buňku, kterou používáte, odstraňte všechny prázdné řádky a sloupce nad ukazatelem buňky a poté soubor znovu uložte - zmenší se tím velikost souboru aplikace Excel.
Další způsoby kontroly paměti
V Excelu lze uvolnit paměť různými způsoby. Doporučujeme zavřít aplikaci Excel, pokud ji nepoužíváte, a poté ji otevřít později - tím se uvolní veškerá paměť, kterou aplikace Excel ukládá, protože má tendenci ukládat paměť, i když není sešit otevřený! Vždy se ujistěte, že je vaše verze Office aktuální, vyhledáním aktualizací ve vašem počítači a vyhledáním doplňků VBA, které mohou být používány, ale které nepoužíváte - můžete je odinstalovat a uvolnit tak ještě více paměti.