/ / Excel VBA Funciones volátiles

Excel VBA funciones volátiles

Por defecto, UDF "s (Funciones definidas por el usuario) en Excel VBA No son volátiles. Solo se recalculan cuando cambia alguno de los argumentos de la función. A función volátil se volverá a calcular cada vez que se produzcan cálculos en cualquier celda de la hoja de trabajo. Echemos un vistazo a un ejemplo fácil para explicar esto un poco más.

1. Abra el Editor de Visual Basic y haga clic en Insertar, Módulo.

Cree una función llamada MYFUNCTION que devuelva la suma de la celda seleccionada y la celda debajo de esta celda.

2. Agregue las siguientes líneas de código:

Function MYFUNCTION(cell As Range)

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

3. Ahora puedes usar esta función, como cualquier otra función de Excel.

Función no volátil en Excel VBA

4. Esta es una función no volátil. Las funciones no volátiles solo se recalculan cuando cambia alguno de los argumentos de la función. Cambie el valor de la celda B2 a 8.

Función

5. Ahora cambia el valor de la celda B3 a 11.

Cualquier otro cambio celular

Explicación: la función no volátil no se recalcula cuando cambia alguna otra celda en la hoja.

6. Actualice la función de la siguiente manera para hacer que la función sea volátil:

Function MYFUNCTION(cell As Range)

Application.Volatile
MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

7. Cambie el valor de la celda B3 a 12.

Resultado:

Función volátil en Excel VBA

Nota: debe ingresar la función nuevamente para hacerla volátil (o actualizarla colocando el cursor en la barra de fórmulas y presionando Intro).

Lea también: