A continuación vamos a ver un programa en Excel VBA que crea una función definida por el usuario. Excel tiene una gran colección de funciones. En la mayoría de situaciones de esas funciones son suficientes para hacer el trabajo. Si no, puede crear su propia función llamada función definida por el usuario o la función de Excel personalizado. Puede acceder a una función definida por el usuario como cualquier otra función de Excel.

Queremos crear una función llamada SUMEVENNUMBERS que encuentra la suma de los números pares de un rango seleccionado al azar.

Situación:

User Defined Function in Excel VBA

funciones definidas por el usuario deben ser colocados en un módulo.

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

  2. Añadir la siguiente línea de código:

Function SUMEVENNUMBERS(rng As Range)

El nombre de nuestra función es SUMEVENNUMBERS. La parte entre los corchetes significa que damos Excel VBA una serie como entrada. Nombramos nuestra gama de números aleatorios, pero se puede utilizar cualquier nombre.

  1. A continuación, declaramos un objeto Range y lo llaman célula.

Dim cell As Range
  1. Queremos comprobar cada celda de un rango seleccionado al azar (de este intervalo puede ser de cualquier tamaño). En Excel VBA, puede utilizar el siguiente bucle For Each para esto. Añadir las siguientes líneas de código:

For Each cell In rng

Next cell

Nota: las células se elige al azar aquí, se puede usar cualquier nombre.

  1. A continuación, comprobar para cada valor en este rango si es par o no. Utilizamos el operador Mod para esto. El operador Mod da el resto de una división. Así 7 mod 2 daría 1. 7 se divide por 2 (3 veces) para dar un residuo de 1. Una vez dicho esto, es fácil comprobar si un número es par o no. Sólo si el resto de un número dividido por 2 es 0, el número es par. 8 mod 2 da 0, 8 se divide por 2 exactamente 4 veces, y por lo tanto 8 es par. Añada la siguiente sentencia if para el bucle For Each Siguiente.

If cell.Value Mod 2 = 0 Then

End If
  1. Sólo si esta afirmación es cierta, añadimos el valor de SUMEVENNUMBERS.

Agregue la siguiente línea de código en la instrucción If.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value
  1. No se olvide de poner fin a la función (fuera del bucle).

End Function
  1. Ahora puede utilizar esta función, al igual que cualquier otra función de Excel, para encontrar la suma de los números pares de un rango seleccionado al azar.

Resultado:

User Defined Function Result

¡Bien hecho! Eso es lo fácil funciones definidas por el usuario en Excel VBA son.

Nota: esta función sólo está disponible en este libro.