Función para Microsoft Excel. Al introducirla en una celda de la hoja del libro no funciona

Hola experto me podrías ayudar a crear una función personalizada, tengo la siguiente función :
sub fuction division(a/b)
division=(a/b)
end fuction
Pero cuando quiero llamarla desde la celda de una hoja de un libro no funciona, un experto me recomendó guardar mi archivo como complementos pero no funcionó, otro me recomendó que haga clic en fx(pegar función) luego me vaya a funciones definidas por el usuario y que mi función iba a estar ahí pero nada que ver.. Ayudame a entender esto.. Mil gracias

1 respuesta

Respuesta
1
Permíteme sugerirte esta sintaxis que es una forma más acertada de escribirla. Inserta un módulo en el Editor de Visual Basic y pega todo lo siguiente:
Function division(A As Double, B As Double) As Double
Application.Volatile
division = A / B
End Function
En la que escribiste
"sub fuction" (sic)
No será interpretada como una función.
Verás que los argumentos simplemente se separan con comas. En lugar de "division(a/b)" debes colocar división(a, b) indicando que la función tendrá dos argumentos.
Adicionalmente es conveniente que definas qué tipo de variables serán.
NO es necesario agregarla como complemento mientras el módulo insertado en el archivo donde quieres aplicar esta función.
SI puedes usar el botón Fx para insertarla, o puedes tipearla como cualquier otra, siempre que esté bien escrita.
Finalmente, así como está tendrás problemas cuando B fuese igual a cero o vacío.
La siguiente función -mejorada- muestra un mensaje de error si esto sucediera y deja un cero como resultado:
Public Function division(A As Double, B As Double) As Double
Application.Volatile
If B <> 0 Then
division = A / B
Else
division = 0
MsgBox "Segundo argumento debe ser distinto de cero"
End If
End Function
---
Para terminar, ten presente que A y B pueden ser números ingresados en la fórmula o referencia a celdas donde estén tales números.
Esto debería resolver tu pregunta. Si así fuera, agradeceré un comentario y que la finalices.
Si no, pregúntame de nuevo.
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas