Ler en inglés

Compartir por


Las partes de Excel se vuelven blancas o grises al ejecutar código VBA en Excel 2013

Síntomas

Al ejecutar código de Microsoft Visual Basic para Aplicaciones (VBA) en Microsoft Excel 2013, las partes de Excel pueden aparecer blancas o grises, en función del tema de Office. Permanece en blanco hasta que se completa el código. Este problema puede producirse si el código VBA realiza una o varias de las siguientes acciones en una macro que se ejecuta lo suficiente para que el usuario vea los resultados antes de que se complete la macro:

  • Selección repetida de celdas
  • Insertar hojas
  • Actualizar o abrir paneles de tareas
  • Agregar un libro

Causa

Este problema se debe a los cambios realizados en Microsoft Office 2013 para optimizar el nuevo motor de gráficos.

Solución alternativa

  1. Use ScreenUpdating para deshabilitar las actualizaciones de pantalla de Excel para que no vea los cambios mientras están deshabilitados. Esto también puede mejorar el rendimiento de las macros.

    VB
    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Si necesita ver los cambios en la pantalla, inserte un comando DoEvents después de la línea del código que hace que la pantalla aparezca en blanco. El uso de DoEvents con moderación ayuda a mantener el rendimiento de las macros.

    VB
    Workbooks.Add
    DoEvents
    

Estado

Esta limitación es una limitación conocida en Excel 2013.

Nota

Para todas las versiones de Excel, puede producirse un efecto similar en macros de larga duración cuando Windows convierte la aplicación en blanco y marca que no responde. Esto ocurre porque Excel no responde a Windows mientras se ejecuta la macro. DoEvents también ayudará en este escenario al permitir que Excel responda a Windows y permitir que la pantalla de la aplicación se recupere.