Hoe cool het er ook uitziet om te zien hoe je VBA-macro het scherm manipuleert, je kunt je macro helpen sneller te werken als je ScreenUpdating uitschakelt (uitschakelt).
Scherm bijwerken uitschakelen
1. Om ScreenUpdating uit te schakelen, plaatst u aan het begin van uw code deze regel:
1 | Application.ScreenUpdating = False |
Schermupdate inschakelen
2. Om ScreenUpdating opnieuw in te schakelen, plaatst u aan het einde van uw code deze regel:
1 | Application.ScreenUpdating = True |
Voorbeeld van VBA-schermupdate
Uw procedure ziet er dan als volgt uit:
1234567891011 | Sub ScreenUpdating_Example()Application.ScreenUpdating = False'Doe ietsBereik ("a1"). Bereik kopiëren ("b1")Bereik ("a2"). Bereik kopiëren ("b2")Bereik ("a3"). Bereik kopiëren ("b3")Application.ScreenUpdating = TrueEinde sub |
SchermUpdaten Vernieuwen
Als u ScreenUpdating uitschakelt, wordt uw VBA-code VEEL sneller uitgevoerd, maar ziet uw werk er ook professioneler uit. Eindgebruikers willen doorgaans niet de acties achter de schermen van uw procedures zien (vooral wanneer de procedure traag verloopt). Ook wilt u misschien niet dat eindgebruikers de functionaliteit achter de schermen zien (bijv. Verborgen werkbladen). Ik raad aan om ScreenUpdating in vrijwel al uw procedures uit te schakelen (en opnieuw in te schakelen).
Er zijn echter momenten waarop u wilt dat het scherm wordt vernieuwd. Om het scherm te vernieuwen, moet u ScreenUpdating tijdelijk weer inschakelen (er is geen scherm "vernieuwen" commando):
123 | Application.ScreenUpdating = True'Doe ietsApplication.ScreenUpdating = False |
VBA-instellingen - Code versnellen
Er zijn verschillende andere instellingen om mee te spelen om je codesnelheid te verbeteren.
Het uitschakelen van automatische berekeningen kan een ENORM snelheidsverschil maken:
1 | Toepassing. Berekening = xlHandmatig |
Het uitschakelen van de statusbalk zal ook een klein verschil maken:
1 | Application.DisplayStatusBar = False |
Als uw werkmap gebeurtenissen bevat, moet u gewoonlijk gebeurtenissen aan het begin van uw procedure uitschakelen:
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 coderegel om het weergeven van pagina-einden uit te schakelen:
1 | ActiveSheet.DisplayPageBreaks = False |