Delen van Excel worden wit of grijs wanneer u VBA-code uitvoert in Excel 2013

Symptomen

Wanneer u VBA-code (Microsoft Visual Basic for Applications) uitvoert in Microsoft Excel 2013, kunnen delen van Excel wit of grijs worden weergegeven, afhankelijk van uw Office-thema. Deze blijft leeg totdat de code is voltooid. Dit probleem kan optreden als de VBA-code een of meer van de volgende acties uitvoert in een macro die lang genoeg wordt uitgevoerd zodat de gebruiker de resultaten kan zien voordat de macro is voltooid:

  • Herhaaldelijk cellen selecteren
  • Bladen invoegen
  • Taakvensters bijwerken of openen
  • Een werkmap toevoegen

Oorzaak

Dit probleem wordt veroorzaakt door de wijzigingen die zijn aangebracht in Microsoft Office 2013 om de nieuwe grafische engine te optimaliseren.

Tijdelijke oplossing

  1. Gebruik ScreenUpdating om de schermupdates van Excel uit te schakelen, zodat u de wijzigingen niet ziet terwijl ze zijn uitgeschakeld. Dit kan ook uw macroprestaties verbeteren.

    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Als u de schermwijzigingen wilt zien, voegt u de opdracht DoEvents in de code in die ervoor zorgt dat het scherm wit wordt weergegeven. Als u spaarzaam DoEvents gebruikt, kunt u de macroprestaties behouden.

    Workbooks.Add
    DoEvents
    

Status

Dit is een bekende beperking in Excel 2013.

Opmerking

Voor alle versies van Excel kan een soortgelijk effect optreden in langlopende macro's wanneer Windows de toepassing wit zet en markeert dat deze niet reageert. Dit komt doordat Excel niet reageert op Windows terwijl de macro wordt uitgevoerd. DoEvents helpt ook bij dit scenario door Excel toe te staan te reageren op Windows en het toepassingsscherm te laten herstellen.