una para otra modificar macro insertar hoja formulario datos buscar boton automaticamente archivo actualizar abrir excel vba excel-vba

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