VBA-fout geheugen vol

In deze zelfstudie wordt de VBA-fout geheugen uitgelegd.

De VBA Out of Memory-fout treedt op wanneer Excel alle bronnen van uw machine heeft gebruikt tijdens het uitvoeren van een macro en letterlijk onvoldoende geheugen heeft om door te gaan met het berekenen of uitvoeren van code. Dit kan gebeuren wanneer u veel toepassingen hebt lopen en een grote macro in Excel probeert uit te voeren, of misschien wanneer u per ongeluk een eeuwigdurende lus in Excel hebt gemaakt.

(Zie onze Error Handling Guide voor meer informatie over VBA-fouten)

Oorzaken van een fout met onvoldoende geheugen

Er kan een fout met onvoldoende geheugen optreden als u werkt met een werkmap die veel werkbladen en duizenden rijen bevat. Als we een lus maken die werkt met een grote hoeveelheid gegevens, kan er een geheugenfout optreden. Het kan ook voorkomen als we met meerdere objecten werken en elk object instellen met een SET-instructie, maar dan de verwijzingen naar de objecten tussen procedures of lussen niet wissen.

De volgende lus kan bijvoorbeeld zeker een geheugenfout veroorzaken als u meerdere bestanden met meerdere bladen hebt geopend.

1234567891011121314 Subtestgeheugen()Dim wb als werkboekDim ws als werkbladDim ik als singleVoor elke wb In Application.WorkbooksVoor elke ws In wb.SheetsDoen tot ActiveCell = "A1048576"ActiveCell = 1 + iik = ik + 1ActiveCell.Offset(1, 0).SelecterenLusVolgende wsVolgende wbEinde sub

Een fout met onvoldoende geheugen voorkomen

Objecten vrijgeven

Als we met lussen en objecten werken, moeten we ervoor zorgen dat we het object op NIETS instellen als het eenmaal is gebruikt en niet langer nodig is - hierdoor wordt geheugen vrijgemaakt.

VBA-programmering | Code Generator werkt voor u!

Zorg ervoor dat er slechts één exemplaar van Excel wordt uitgevoerd

Als we met grote bestanden en grote hoeveelheden gegevens werken, controleer dan of u niet meerdere Excel-sessies open hebt staan ​​- het hoeft maar één keer geopend te zijn. Een manier om dit te controleren is door naar Taakbeheer te gaan en te zien hoeveel exemplaren van Excel actief zijn.

druk op Ctrl+Alt+Verwijderen op het toetsenbord,

Klik op Taakbeheer en zorg ervoor dat er slechts één exemplaar van Excel actief is. In de onderstaande afbeelding is er één exemplaar met 2 vensters.

We kunnen ook in Taakbeheer controleren of er geen Excel-exemplaar op de achtergrond draait (dwz niet zichtbaar).

Scroll naar beneden in Taakbeheer totdat je ziet Achtergrondprocessen en zorg ervoor dat Excel niet in die lijst met programma's staat.

Controleer de grootte van uw Excel-bestand

Vaak zijn er rijen en kolommen die zijn geopend onder de rijen en kolommen in uw werkbladen die daadwerkelijk worden gebruikt. Excel gebruikt geheugen in deze cellen, zelfs als die cellen leeg zijn. Controleer de grootte van het bestand door op te drukken CTRL+SHIFT+END op het toetsenbord om te zien waar uw celaanwijzer terechtkomt. Als het ver onder de laatste cel die u gebruikt terechtkomt, zorg er dan voor dat u alle lege rijen en kolommen boven de celaanwijzer verwijdert en sla het bestand vervolgens opnieuw op - dit zal de grootte van uw Excel-bestand verkleinen.

Andere manieren om het geheugen te controleren

Er zijn verschillende andere manieren om geheugen vrij te maken in Excel. Het is een goed idee om Excel te sluiten als u het niet gebruikt, en het later te openen - dit zal geheugen vrijmaken dat Excel opslaat, aangezien het de neiging heeft om geheugen op te slaan, zelfs wanneer een werkmap niet geopend is! Zorg er altijd voor dat uw versie van Office up-to-date is door te controleren op updates op uw pc en te controleren op eventuele VBA-invoegtoepassingen die mogelijk worden gebruikt, maar die u niet gebruikt - u kunt deze verwijderen om nog meer geheugen vrij te maken.

wave wave wave wave wave