Schakel automatische berekeningen uit (of aan) - VBA-codevoorbeelden

Telkens wanneer u een celwaarde bijwerkt, doorloopt Excel een proces om de werkmap opnieuw te berekenen. Wanneer u rechtstreeks in Excel werkt, wilt u dat dit 99,9% van de tijd gebeurt (uitzondering als u met een extreem grote werkmap werkt). Dit kan uw VBA-code echter echt vertragen. Het is een goede gewoonte om uw berekeningen aan het begin van macro's op handmatig in te stellen en berekeningen aan het einde van macro's te herstellen. Als u de werkmap opnieuw moet berekenen, kunt u Excel handmatig laten berekenen.

Automatische berekeningen uitschakelen

U kunt automatische berekening met een macro uitschakelen door deze in te stellen op xlmanual. Gebruik het volgende stuk VBA-code:

1 Toepassing. Berekening = xlHandmatig

Automatische berekeningen weer inschakelen

Om de automatische berekening weer in te schakelen met de instelling xlAutomatisch:

1 Toepassing.Berekening = xlAutomatisch

Ik raad aan om Automatische berekeningen helemaal aan het begin van uw procedure uit te schakelen en Automatische berekeningen aan het einde weer in te schakelen. Het zal er als volgt uitzien:

Automatische berekeningen uitschakelen Macro Voorbeeld

12345678 Sub Auto_Calcs_Example()Toepassing. Berekening = xlHandmatig'Doe ietsToepassing.Berekening = xlAutomatischEinde sub

Handmatige berekening

Als Automatische berekeningen zijn uitgeschakeld, kunt u de Berekenen commando om Excel te dwingen opnieuw te berekenen:

1 Berekenen

U kunt Excel ook laten weten dat alleen een afzonderlijk werkblad opnieuw moet worden berekend:

1 Werkbladen ("sheet1"). Berekenen

U kunt VBA ook vragen om slechts een bereik opnieuw te berekenen (klik om ons artikel over VBA-berekeningsmethoden te lezen)

Hier is hoe dit eruit zou kunnen zien in een macro:

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc()Toepassing. Berekening = xlHandmatig'Doe iets'Herberekenen'Berekenen'Meer dingen doen'Toepassing.Berekening = xlAutomatischEinde sub

VBA-instellingen - Code versnellen

Als het uw doel is om uw code te versnellen, kunt u ook overwegen om deze andere instellingen aan te passen:

Het uitschakelen van Screenupdating kan een enorm verschil in snelheid maken:

1 Application.ScreenUpdating = False

Het uitschakelen van de statusbalk zal ook een klein verschil maken:

1 Application.DisplayStatusBar = False

Als uw werkmap gebeurtenissen bevat, moet u gebeurtenissen aan het begin van uw procedures ook uitschakelen (om de code te versnellen en eindeloze lussen te voorkomen!):

1 Application.EnableEvents = False

Ten slotte kan uw VBA-code worden vertraagd wanneer Excel probeert pagina-einden opnieuw te berekenen (Opmerking: niet alle procedures worden beïnvloed). Gebruik deze regel code om DisplayPageBreaks uit te schakelen:

1 ActiveSheet.DisplayPageBreaks = False

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave