0069-Impedindo a atualização de tela durante a execução de macros

Quando suas macros estão rodando, você fica vendo todas as mudanças ocorridas nas células, janelas, etc?

Muitas vezes é vantajoso impedir esta atualização, seja para que o usuário não veja as etapas que estão ocorrendo, seja para ganhar em performance, pois esta atualização on-line consume recursos de sua máquina, reduzindo a velocidade com as macros são executadas.

Para impedir a atualização insira a linha abaixo no início do seu código

Application.ScreenUpdating = False

Insira a linha a seguir antes de concluí-lo.

Application.ScreenUpdating = True

Só para termos uma comparação, a versão do código abaixo, demorou 2,11 segundos para ser executada.

Sub Prencher_Células()
    For i = 1 To 100
        For j = 1 To 30
            Cells(i, j) = Cells(i, j).Row + Cells(i, j).Column
        Next j
    Next i
End Sub

A versão modificada, com a inserção dos comandos para inibir a atualização e em seguida liberá-la, demorou 1,01 segundos.

Sub Prencher_Células()
Application.ScreenUpdating = False
    For i = 1 To 100
        For j = 1 To 30
            Cells(i, j) = Cells(i, j).Row + Cells(i, j).Column
        Next j
    Next i
Application.ScreenUpdating = True
End Sub

Pode parecer pouco, mas em códigos mais complexos essa diferença é realmente bastante significativa. Principalmente nos códigos em que há inserção de valores nas células de planilhas.

Anúncios

In Excel We Trust

Marcado com: , , , ,
Publicado em Nível: Avançado

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: