Excel VBA Funciones volátiles
Por defecto, ( enlace: / VBA-ejemplos-user—función definida [funciones definidas por el usuario]
) de UDF en Excel VBA no son volátiles. Sólo se vuelven a calcular cuando cualquiera de los argumentos de la función de cambio. Una función volátil se volverá a calcular cada vez que se produce cálculo en cualquier célula en la hoja de cálculo. Vamos a echar un vistazo a un ejemplo fácil de explicar esto un poco más.
-
Abra el Editor de Visual Basic y haga clic en Insertar, Módulo.
Crear un llamado MyFunction función que devuelve la suma de la celda seleccionada y la celda debajo de esta célula.
-
Añadir las siguientes líneas de código:
Function MYFUNCTION(cell As Range) MYFUNCTION = cell.Value + cell.Offset(1, 0).Value End Function
-
Ahora puede utilizar esta función, al igual que cualquier otra función de Excel.
-
Esta es una función no volátil. funciones no volátiles solamente se vuelven a calcular cuando cualquiera de cambio de los argumentos de la función. Cambiar el valor de la celda B2 a 8.
-
Ahora cambiar el valor de la celda B3 a 11.
Explicación: la función no volátil no se vuelve a calcular cuando cualquier otra célula en la hoja cambia.
-
Actualización de la función de la siguiente manera para hacer que la función volátil:
Function MYFUNCTION(cell As Range) Application.Volatile MYFUNCTION = cell.Value + cell.Offset(1, 0).Value End Function
-
Cambiar el valor de la celda B3 a 12.
Resultado:
Nota: es necesario introducir de nuevo la función para que sea volátil (o actualizarla colocando el cursor en la barra de fórmulas y pulsar enter).