Leggere in inglese

Condividi tramite


Parti di Excel diventano bianche o grigie quando si esegue codice VBA in Excel 2013

Sintomi

Quando si esegue il codice microsoft Visual Basic, Applications Edition (VBA) in Microsoft Excel 2013, le parti di Excel possono essere visualizzate in bianco o grigio, 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 con una durata sufficiente per 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 della macro.

    VB
    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Se è necessario visualizzare le modifiche della schermata, inserire un comando DoEvents dopo la riga nel codice che fa sì che la schermata venga visualizzata in bianco. L'uso di DoEvents consente di mantenere le prestazioni delle macro.

    VB
    Workbooks.Add
    DoEvents
    

Stato

Questa limitazione è una limitazione nota in Excel 2013.

Nota

Per tutte le versioni di Excel, un effetto simile può verificarsi in macro a esecuzione prolungata quando Windows attiva il bianco dell'applicazione e lo contrassegna senza rispondere. 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.