Optimizar macro VBA para disminuir tiempo de ejecución
Buenas tardes, solicito de la ayuda de algún experto para optimizar una macro que tengo, ella realiza muy buen su tarea. Pero su tiempo de ejecución en mi computador supera el minuto aproxmente y no se si sea posible optimizarla para que lo haga en un menor tiempo. Ya que en ocasiones me han ayudado con otras y si se ha podido.
Lo que hace la macro básicamente es del rango del lado derecho donde están los números separados, los copia y pega en el segundo rango de manera que quedan juntos. Debo de informar que cada rango consta de 1.000 columnas. Y la macro ejecuta con los datos que tiene hasta el final, en este caso tiene 2.000 filas con datos. Pero tal vez pueda hacerlo en menos tiempo ya que solo básicamente copia y pega simplemente eliminando las celdas vacías.
Sub pegarP() With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With With Range("A10").CurrentRegion 'CELDA INICIAL f = .Rows.Count c = 1000 'NUMERO DE CELDAS End With Set numeros = Range("A10").Resize(f - 1, c) 'CELDA INICIAL Set resultado = Range("ALQ10").Resize(f - 1, c) 'CELDA DONDE EMPIEZA A PEGAR matriz = resultado For i = 1 To f - 1 x = 1 For j = 1 To c numero = numeros.Cells(i, j) If IsNumeric(numero) Then matriz(i, x) = numero x = x + 1 End If Next j Next i Range(resultado.Address) = matriz With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With End Sub
esta es la macro que estoy usando actualmente, tal vez si haya que incluirle o excluirle algo, o una nueva que ejecute en menor tiempo seria genial, me ahorraria mucho tiempo porque la macro se reejecuta cerca de 2.000 veces entonces alli se demora horas en realizar su tarea.