¿Es necesario escribir ScreenUpdating True?

Application.ScreenUpdating = False
Application.ScreenUpdating = True

Encontré las declaraciones contradictorias sobre la segunda línea.
¿Es necesario o no?
¿Alguien dice que Excel activa ScreenUpdating automáticamente, después de cada línea End Sub?

preguntado el 24 de agosto de 12 a las 06:08

It no se hazlo "después de cada línea End Sub", pero podría hágalo cuando la ejecución del programa regrese a Excel (desde el usuario/código VBA o macro) ... personalmente, si este fuera mi código, sería explícito y lo cambiaría manualmente, incluso si Excel lo cambiara nuevamente (quizás para evitar macros maliciosas o con errores). los referencia para la propiedad ScreenUpdating dice "Recuerde volver a establecer la propiedad ScreenUpdating en True cuando finalice la macro."-

@pst ¡Deberías publicarlo como respuesta! -

2 Respuestas

Sí, ScreenUpdating siempre debe volver a establecerse en True después de que finalice la macro. Además, no se olvide de restaurarlo en caso de error, por lo general siempre pongo Application.ScreenUpdating=True en el código de error antes de salir de Sub/Function. Excel no aplica ninguna configuración automática de esta propiedad después de que finaliza la macro.

Respondido 24 ago 12, 22:08

La actualización de la pantalla vuelve a ser verdadera cuando existe el sub.

Pruébelo. Código con actualización de pantalla y no vuelto a ser verdadero.

Sub with_SU2()
    Application.ScreenUpdating = False
    For Each cell In Range("A1:K22").Cells
        cell.Select
        cell.Value = cell.Row & " _ " & cell.Column
    Next cell
End Sub

Ejecute esto después del código anterior. Verá que se ha restaurado la actualización de la pantalla.

Sub with_SU()
    For Each cell In Range("A1:K22").Cells
        cell.Select
        cell.Value = cell.Row & " _ " & cell.Column
    Next cell
End Sub

Respondido el 18 de diciembre de 19 a las 13:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.