Como tornar a execução de uma macro do Excel mais rápida
Neste artigo, eu demonstro como reduzir drasticamente o tempo de execução de seu código VBA. Os seguintes comandos fazem toda a diferença.

Este post foi originalmente publicado em http://officevbavsto.blogspot.com/2011/05/quickshot-tornando-execucao-de-seu.html
Neste artigo, eu demonstro como reduzir drasticamente o tempo de execução de seu código VBA. Os seguintes comandos fazem toda a diferença.
Sub executa()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
End Sub
O primeiro, ScreenUpdating
faz com que não seja mostrada a execução de seu código no Excel, ou seja, ele não fica mostrando planilhas sendo abertas, linhas sendo excluídas e etc. A tela fica estática. Isso reduz em muito o tempo de execução.
O outro é o Calculation
. Este desliga o cálculo automático, o qual consume muito recurso de memória do seu computador. Se você realmente não precisa que sejam executados cálculos de fórmulas então o desligue, mas se em algum momento você precisa executar o cálculo você pode ligá-lo novamente ou mandar o Excel calcular apenas naquele momento.
Ligando o cálculo novamente:
Application.Calculation = xlCalculationAutomatic
Ou, fazendo o Excel calcular:
Sub manda_calcular()
Calculate
End Sub
Este método equivale a você pressionar a tecla F9 ou clicar em Fórmulas -> Calcular Agora.
Delimitando a região de cálculo
O interessante do método Calculate é que você pode delimitar a região do cálculo:
Sub calcula_regia_especifica()
Range("A1:A20").Calculate
End Sub
No exemplo acima, o Excel calcula apenas as células da região A1:A2.