Le parti di Excel diventano bianche o grigie quando si esegue il codice VBA in Excel 2013

Sintomi

Quando si esegue il codice di Microsoft Visual Basic, Applications Edition (VBA) in Microsoft Excel 2013, alcune parti di Excel potrebbero apparire bianche o grigie, a seconda del tema di Office. Rimane vuoto fino al completamento del codice. Questo problema può verificarsi se il codice VBA esegue una o più delle azioni seguenti in una macro sufficientemente lunga da consentire all'utente di visualizzare i risultati prima del completamento della macro:

  • Selezionare ripetutamente le celle
  • Inserisci fogli
  • Aggiornare o aprire i riquadri attività
  • Aggiungere una cartella di lavoro

Causa

Questo problema è causato dalle modifiche apportate in Microsoft Office 2013 per ottimizzare il nuovo motore grafico.

Soluzione alternativa

  1. Usare ScreenUpdating per disabilitare gli aggiornamenti dello schermo di Excel in modo da non visualizzare le modifiche mentre sono disabilitate. Ciò può anche migliorare le prestazioni delle macro.

    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Se è necessario visualizzare le modifiche dello schermo, inserire un comando DoEvents dopo la riga nel codice che fa apparire lo schermo bianco. L'uso di DoEvents con parsimonia consente di mantenere le prestazioni delle macro.

    Workbooks.Add
    DoEvents
    

Stato

Si tratta di una limitazione nota in Excel 2013.

Nota

Per tutte le versioni di Excel, un effetto simile può verificarsi nelle macro a esecuzione prolungata quando Windows rende l'applicazione bianca e contrassegna la mancata risposta. Ciò si verifica perché Excel non risponde a Windows mentre la macro è in esecuzione. DoEvents assisterà anche in questo scenario consentendo a Excel di rispondere a Windows e consentire il ripristino della schermata dell'applicazione.