Deler av Excel blir hvite eller grå når du kjører VBA-kode i Excel 2013

Symptomer

Når du kjører Microsoft Visual Basic for Applications (VBA)-kode i Microsoft Excel 2013, kan deler av Excel vises som hvite eller grå, avhengig av Office-temaet. Den forblir tom til koden er fullført. Dette problemet kan oppstå hvis VBA-koden utfører én eller flere av følgende handlinger i en makro som kjører lenge nok til at brukeren kan se resultatene før makroen fullføres:

  • Merke celler gjentatte ganger
  • Sett inn ark
  • Oppdatere eller åpne oppgaveruter
  • Legge til en arbeidsbok

Årsak

Dette problemet skyldes endringene som er gjort i Microsoft Office 2013 for å optimalisere den nye grafikkmotoren.

Løsning

  1. Bruk ScreenUpdatingto til å deaktivere skjermoppdateringene av Excel, slik at du ikke ser endringene mens de er deaktivert. Dette kan også forbedre makroytelsen.

    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Hvis du trenger å se at skjermen endres, setter du inn en DoEvents-kommando etter linjen i koden som gjør at skjermen vises hvit. Bruk av DoEvents på en sparsomt vis vil bidra til å opprettholde makroytelsen.

    Workbooks.Add
    DoEvents
    

Status

Dette er en kjent begrensning i Excel 2013.

Obs!

For alle versjoner av Excel kan en lignende effekt oppstå i makroer som kjører lenge når Windows gjør programmet hvitt og merker at det ikke svarer. Dette skjer fordi Excel ikke svarer på Windows mens makroen kjører. DoEvents hjelper også i dette scenarioet ved å la Excel svare på Windows og la programskjermen gjenopprette.