Delar av Excel blir vita eller grå när du kör VBA-kod i Excel 2013

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Symptom

När du kör Microsoft Visual Basic for Applications-kod (VBA) i Microsoft Excel 2013 kan delar av Excel visas i vitt eller grått, beroende på vilket Office-tema du använder. Den förblir tom tills koden har slutförts. Det här problemet kan uppstå om VBA-koden utför en eller flera av följande åtgärder i ett makro som körs tillräckligt länge för att användaren ska kunna se resultatet innan makrot slutförs:

  • Markera celler flera gånger
  • Infoga blad
  • Uppdatera eller öppna åtgärdsfönster
  • Lägga till en arbetsbok

Orsak

Det här problemet orsakas av de ändringar som görs i Microsoft Office 2013 för att optimera den nya grafikmotorn.

Lösning

  1. Använd ScreenUpdatingom du vill inaktivera Excel så att du inte ser ändringarna medan de är inaktiverade. Det kan även förbättra makroprestandan.

    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Om du behöver se ändringarna på skärmen infogar du ett DoEvents-kommando efter raden i koden som gör att skärmen visas vit. Om du använder DoEvents sparsamt behålls makroprestandan.

    Workbooks.Add
    DoEvents
    

Status

Det här är en känd begränsning i Excel 2013.

Anteckning

För alla versioner Excel kan en liknande effekt uppstå i långvariga makron när Windows blir vita och markerar att det inte svarar. Det här inträffar Excel inte svarar på Windows medan makrot körs. DoEvents hjälper också till i det här scenariot genom att Excel svara på Windows och låta programskärmen återställas.