- 24 Nov 2021 às 20:13
#68039
Procurei aqui e não encontrei nada relacionado ao assunto, então, se já tiverem perguntado isso em algum outro post, me desculpem por repetir a pergunta
Recentemente vi algumas formas de otimizar o tempo para rodar uma macro. Numa dessas dicas, vi que quando uma macro é gravada pode aparecer o .Select e isso ocupa muita memória, ainda mais se for executada uma macro que tenha muitos .Select.
Ao analisar uma das macros que eu fiz, reparei que tinham vários .Select, como em:
Range("A1").Select
ActiveCell.FormulaR1C1 = "X"
Range("A2").Select
ActiveCell.FormulaR1C1 = "X"
Range("A3").Select
ActiveCell.FormulaR1C1 = "X"
Range("A4").Select
... e assim vai
Como posso fazer para alterar esse .Select, de forma que o tempo decorrido para executar a macro seja o mais veloz possível? Ainda, vocês sabem também outras formas de reduzir o tempo de execução das macros? Por exemplo, uma que eu sei é usar o Application.ScreenUpdating = False no começo da macro, e no final encerrar com Application.ScreenUpdating = True. Se souberem de mais dicas assim, postem aqui!! Muito obrigado pela atenção!!
Recentemente vi algumas formas de otimizar o tempo para rodar uma macro. Numa dessas dicas, vi que quando uma macro é gravada pode aparecer o .Select e isso ocupa muita memória, ainda mais se for executada uma macro que tenha muitos .Select.
Ao analisar uma das macros que eu fiz, reparei que tinham vários .Select, como em:
Range("A1").Select
ActiveCell.FormulaR1C1 = "X"
Range("A2").Select
ActiveCell.FormulaR1C1 = "X"
Range("A3").Select
ActiveCell.FormulaR1C1 = "X"
Range("A4").Select
... e assim vai
Como posso fazer para alterar esse .Select, de forma que o tempo decorrido para executar a macro seja o mais veloz possível? Ainda, vocês sabem também outras formas de reduzir o tempo de execução das macros? Por exemplo, uma que eu sei é usar o Application.ScreenUpdating = False no começo da macro, e no final encerrar com Application.ScreenUpdating = True. Se souberem de mais dicas assim, postem aqui!! Muito obrigado pela atenção!!