Mi macro actualiza una gran hoja de cálculo con números, pero se ejecuta muy lentamente ya que Excel está representando el resultado a medida que lo calcula. ¿Cómo impido que excel ejecute la salida hasta que se complete la macro?¿Cómo evito que Excel represente la hoja de cálculo como lo calcula mi macro?
Respuesta
yo uso tanto de las soluciones propuestas:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Puede desactivar el cálculo automático en el cuadro de diálogo de opciones, lo configura de modo que solo se calcule cuando presiona F9.
Application.ScreenUpdating = False
Y, por supuesto, la puso de nuevo en true cuando haya terminado, incluso si se produce un error. Ejemplo:
Public Sub MyMacro
On Error GoTo ErrHandler
Application.ScreenUpdating = False
... do my stuff that might raise an error
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
Application.ScreenUpdating = True
... Do something with the error, e.g. MsgBox
End Sub
Sobre la base de Joe y SEER (esto utiliza la sintaxis de edad por lo que es compatible con VBA de Office 2000):
On Error Goto AfterCalculation
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
AfterCalculation:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
También prefiero usar las dos soluciones propuestas, , pero también mantener el modo de cálculo previo de los usuarios.
Para esta aplicación particular, esto podría ser que no es problema, pero por lo general las mejores prácticas para permitir que los usuarios tienen sus ajustes restaurados después de finalizar su procedimiento:
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
NB. También valdría la pena su tiempo para insertar algún control de errores que active Application.ScreenUpdating si ocurriera un error en su brillante código;) Si la memoria no me falla, Excel no mostrará ningún mensaje de error cuando ScreenUpdating = false. Algo como esto:
Sub DoSomeThing
On Error Goto DisplayError
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
Exit Sub
DisplayError:
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
MsgBox Err.Description
End 'This stops execution of macro, in some macros this might not be what you want'
'(i.e you might want to close files etc)'
End Sub
- 1. Excel sigue cargando mi hoja de cálculo con un error
- 2. ¿Cómo evito el uso dinámico cuando me burlo de una hoja de cálculo Excel?
- 3. ¿Guardar hoja de cálculo de Excel como .csv con R?
- 4. Importación de datos de hoja de cálculo de Excel a otra hoja de cálculo de Excel que contiene VBA
- 5. Hoja de cálculo de Excel de Excel utilizando EPPlus
- 6. Cómo cambio el nombre de la hoja de C# en una hoja de cálculo de Excel
- 7. ¿Almacenar objetos en la hoja de cálculo de Excel?
- 8. ¿Cómo resaltar los campos calculados en una hoja de cálculo de Excel?
- 9. Copie una hoja de cálculo completa en una nueva hoja de cálculo en Excel 2010
- 10. Macro independiente de Excel
- 11. NullReferenceException al crear la hoja de cálculo de Excel
- 12. ruby excel reader, gema de la hoja de cálculo
- 13. Agregar una macro a una hoja de cálculo de Excel con Java
- 14. En C++, ¿hay punteros como referencias de celda en una hoja de cálculo de Excel?
- 15. C# lea la hoja de cálculo de Excel
- 16. Obtener el nombre de la hoja de Excel y usarlo como variable en macro
- 17. ¿Cómo llamar macro macro específica de una hoja de un libro de Excel en otro?
- 18. hoja de cálculo Excel xml: ¿es posible incrustar imágenes?
- 19. ¿Cómo escribo mi hoja de cálculo Excel en una variable, usando PhpExcel?
- 20. Extraer VBA de una hoja de cálculo de Excel
- 21. llamando a la función de hoja de cálculo excel desde la celda excel
- 22. Guardar hoja de cálculo de Excel con Interop C#
- 23. Abrir archivo de Excel en una hoja de cálculo específica
- 24. Abrir hoja de cálculo xml en Excel de forma predeterminada
- 25. usando C# para seleccionar una hoja de cálculo en Excel
- 26. ¿Cómo evito el "# DIV/0"? error en la hoja de cálculo de Google docs?
- 27. Ocultar una hoja de cálculo de Excel con VBA
- 28. Extrae datos de una hoja de cálculo Excel
- 29. Borrar todas las formas en la hoja de cálculo de Excel excepto controles de formulario
- 30. Calcula el total semanal y mensual en la hoja de cálculo
mi macro sólo se ejecuta cuando yo haga, así que estoy bien en este aspecto, pero no quiero ver la copia del sobresalir en torno a los datos (según lo especificado por la macro), sólo se el resultado final – Oskar