Desativar atualização de tela - exemplos de código VBA

Por mais legal que pareça observar sua macro VBA manipular a tela, você pode ajudar sua macro a funcionar mais rapidamente se desligar (desabilitar) a atualização de tela.

Desativar ScreenUpdating

1. Para desativar o ScreenUpdating, no início do seu código, coloque esta linha:

1 Application.ScreenUpdating = False

Ativar atualização de tela

2. Para reativar o ScreenUpdating, no final do seu código, coloque esta linha:

1 Application.ScreenUpdating = True

Exemplo de atualização de tela VBA

Seu procedimento ficará assim:

1234567891011 Sub ScreenUpdating_Example ()Application.ScreenUpdating = False'Faça alguma coisaIntervalo ("a1"). Copiar intervalo ("b1")Faixa ("a2"). Faixa de cópia ("b2")Faixa ("a3"). Faixa de cópia ("b3")Application.ScreenUpdating = TrueEnd Sub

Atualização de tela e atualização

Desativar o ScreenUpdating fará com que seu código VBA seja executado MUITO mais rápido, mas também fará com que seu trabalho pareça mais profissional. Os usuários finais normalmente não querem ver as ações dos bastidores de seus procedimentos (especialmente quando o procedimento é lento). Além disso, você pode não querer que os usuários finais vejam a funcionalidade dos bastidores (por exemplo, planilhas ocultas). Eu recomendo desativar (e reativar) o ScreenUpdating em praticamente todos os seus procedimentos.

No entanto, há momentos em que você deseja que a tela seja atualizada. Para atualizar a tela, você precisará ativar temporariamente o ScreenUpdating (não há comando de "atualização" da tela):

123 Application.ScreenUpdating = True'Faça alguma coisaApplication.ScreenUpdating = False

Configurações de VBA - Código de aceleração

Existem várias outras configurações para melhorar a velocidade do código.

Desativar cálculos automáticos pode fazer uma diferença ENORME na velocidade:

1 Application.Calculation = xlManual

Desativar a barra de status também fará uma pequena diferença:

1 Application.DisplayStatusBar = False

Se sua pasta de trabalho contiver eventos, você geralmente deve desativar os eventos no início do seu procedimento:

1 Application.EnableEvents = False

Por último, seu código VBA pode ficar lento quando o Excel tenta recalcular quebras de página (Observação: nem todos os procedimentos serão afetados). Para desativar a exibição de quebras de página, use esta linha de código:

1 ActiveSheet.DisplayPageBreaks = False
wave wave wave wave wave