otra - macro para actualizar datos en excel
Hacer que Excel actualice los datos en la hoja desde dentro de VBA (5)
¿Cómo se obtienen los datos de la hoja de cálculo en Excel para volver a calcularse desde VBA, sin la necesidad de simplemente cambiar el valor de una celda?
Algunas veces Excel tendrá problemas y necesita un kick-start para volver a aplicar una ecuación. Esto sucede en algunos casos cuando usa fórmulas personalizadas.
Asegúrese de tener la siguiente secuencia de comandos
ActiveSheet.EnableCalculation = True
Vuelva a aplicar la ecuación de elección.
Cells(RowA,ColB).Formula = Cells(RowA,ColB).Formula
Esto se puede bifurcar según sea necesario.
Esto debería funcionar...
''recalculate all open workbooks
Application.Calculate
''recalculate a specific worksheet
Worksheets(1).Calculate
'' recalculate a specific range
Worksheets(1).Columns(1).Calculate
Las siguientes líneas harán el truco:
ActiveSheet.EnableCalculation = False
ActiveSheet.EnableCalculation = True
Editar: El método .Calculate () no funcionará para todas las funciones, lo probé en una hoja con funciones de conjunto adicionales. La hoja de producción que estoy usando es lo suficientemente compleja. No quiero probar y probar el método .CalculateFull (), así que puede funcionar.
También puedes probar
Application.CalculateFull
o
Application.CalculateFullRebuild
si no le importa reconstruir todos los libros de trabajo abiertos, en lugar de solo la hoja de trabajo activa. ( CalculateFullRebuild
reconstruye las dependencias también).
Tuve un problema al desactivar una imagen de fondo (una marca de agua DRAFT) en VBA. Mi cambio no aparecía (lo cual se realizó con el método Sheets(1).PageSetup.CenterHeader = ""
), así que necesitaba una forma de actualizar. El enfoque ActiveSheet.EnableCalculation
hizo el truco en parte, pero no cubrió las celdas no utilizadas.
Al final encontré lo que necesitaba con un trazador de líneas que hizo desaparecer la imagen cuando ya no estaba configurada:
Application.ScreenUpdating = True