Forzar a una macro se ejecute cuando se vuelve a calcular una hoja de cálculo

January 25

Cuando se escribe una macro, que está diseñado para ejecutarse cada vez que usted elija para ejecutarlo. ¿Qué pasa si usted necesita para desarrollar una macro que se ejecutará cada vez que algo cambia en su hoja de cálculo? ¿Qué pasa si desea que la macro se ejecute automáticamente? Esto es especialmente necesario si va a crear una función personalizada que desea utilizar dentro de las celdas de la hoja de trabajo.

Aquí es donde el método Volátil viene muy bien. Todo lo que necesitas hacer es incluir la siguiente declaración en la macro:

Application.Volatile

Esto informa a Excel que los resultados de la macro dependen de los valores de la hoja de trabajo, y que debe ser ejecutado cada vez que se vuelve a calcular la hoja de trabajo. Por ejemplo, considere la siguiente función definida por el usuario:

CountCells función (MyRange como gama)
Dim iCount As Integer
iCount = 0
Para cada celda en MyRange
Si cell.HasFormula Entonces
iCount = iCount + 1
End If
Siguiente celular
CountCells = iCount
End Function

Esta función, si se utiliza en una célula, cuenta el número de celdas que contienen fórmulas dentro de un rango especificado. Sin embargo, la función sólo se ejecutará la primera vez que se introduce en una célula, o siempre que se edita la celda que contiene la fórmula. Si desea que la función para volver a calcular cada vez que la hoja se vuelve a calcular, debe agregar el método Volátil cerca del comienzo de la función:

CountCells función (MyRange como gama)
Dim iCount As Integer
Application.Volatile
iCount = 0
Para cada celda en MyRange
Si cell.HasFormula Entonces
iCount = iCount + 1
End If
Siguiente celular
CountCells = iCount
End Function

La inclusión del método Application.Volatile significa que cada vez se vuelve a calcular la hoja de cálculo, esta función (macro) se ejecuta de nuevo.

ExcelTips es su fuente de capacitación rentable Microsoft Excel. Esta punta (2013) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y versiones posteriores) aquí: Forzar a una macro se ejecute cuando se vuelve a calcular una hoja de cálculo .