Excelin osat muuttuvat valkoisiksi tai harmaiksi, kun suoritat VBA-koodia Excel 2013:ssa

Oireet

Kun suoritat Microsoft Visual Basic for Applications (VBA) -koodin Microsoft Excel 2013, jotkin Excelin osat saattavat näyttää valkoisilta tai harmailta Office-teeman mukaan. Se pysyy tyhjänä, kunnes koodi on valmis. Tämä ongelma voi ilmetä, jos VBA-koodi suorittaa makrossa yhden tai useamman seuraavan toiminnon, joka suoritetaan niin kauan, että käyttäjä näkee tulokset ennen makron valmistumista:

  • Valitse solut toistuvasti
  • Lisää taulukoita
  • Päivitä tai avaa tehtäväruutuja
  • Lisää työkirja

Syy

Tämä ongelma johtuu Muutoksista, jotka on tehty Microsoft Office 2013:ssa uuden grafiikkamoduulin optimoimiseksi.

Vaihtoehtoinen menetelmä

  1. ScreenUpdating-toiminnolla voit poistaa Excelin näyttöpäivitykset käytöstä, jotta et näe muutoksia, kun ne on poistettu käytöstä. Tämä saattaa myös parantaa makrojen suorituskykyä.

    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Jos haluat nähdä näytön muutokset, lisää DoEvents-komento sen rivin jälkeen koodissa, joka saa näytön näyttämään valkoiselta. DoEventsin säästeliäästi käyttäminen auttaa ylläpitämään makrojen suorituskykyä.

    Workbooks.Add
    DoEvents
    

Tila

Tämä on Excel 2013:n tunnettu rajoitus.

Huomautus

Kaikilla Excel-versioilla voi ilmetä samanlainen vaikutus pitkäkestoisissa makroissa, kun Windows muuttaa sovelluksen valkoiseksi ja merkitsee, ettei se vastaa. Tämä johtuu siitä, että Excel ei vastaa Windowsiin makron ollessa käynnissä. DoEvents auttaa myös tässä skenaariossa sallimalla Excelin vastata Windowsille ja sallia sovellusnäytön palauttamisen.