fbpx

Problema para usar una función en una subrutina

  • Problema para usar una función en una subrutina

     Angel Sánchez Espinoza Actualizado 1 mes, 1 semana 2 Miembros · 2 Publicaciones
  • JESUS EMILIO ORTIZ CASTAÑEDA

    Miembro
    3 abril, 2021 en 2:58 pm

    Hola, tengo un detalle para correr una función desde una subrutina, me aparece el error de la imagen

    Anexo el código

    Function velo(distancia As Double, tiempo As Double, unidadd As String, unidadt As String)

    ‘aquí estamos manejando 4 variables, las cuales, 2 son los componentes para la forumla

    ‘distancia y tiempo

    ‘ y las otras 2 son las unidades correspondientes para las mismas

    ‘De esta forma el programa le arroja al usuario la velocidad en las

    ‘unidades que sean

    velo = “La velocidad es ” & distancia / tiempo & unidadd & ” sobre ” & unidadt

    End Function

    Sub velocidad()

    Dim a, c As Double

    Dim r As Variant

    Dim b, d As String

    b = InputBox(“En qué unidades se medirá la distancia?: “, “Calculo de velocidad”)

    a = InputBox(“Ingresa por favor la distancia en la unidad especificada”, “Calculo de velocidad”)

    d = InputBox(“En qué unidades se medirá el tiempo?: “, “Calculo de velocidad”)

    c = InputBox(“Ingresa por favor la cantidad de tiempo”, “Calculo de velocidad”)

    r = velo(a, c, b, d)

    End Sub

  • Angel Sánchez Espinoza

    organizador
    3 abril, 2021 en 6:15 pm

    Este error se genera ya que el tipo de dato que intentas pasar por parámetro no es el esperado. Me explico;

    En esta línea de código:

    Dim a, c As Double

    Tu intentas declarar las dos variables como tipo Double, pero solo se le esta asignando a la variable c. Así que cambia esa línea a esto:

    Dim a As Double, c As Double

    Y has lo mismo con la variable b y d:

    Dim b As String, d As String

    El error:

    Cuando tu no le asignas un tipo de dato a una variable se le asigna Variant. Y el error ocurre cuando en tu función velo dices que el parámetro debe de ser Double. Ósea no coinciden.

    Recomendación:

    Te recomiendo también que todas las variables que declares les pongas un nombre que sea relacionado con el valor que va a representar. Por ejemplo si tu variable “a” guardara la distancia pues ponte ese nombre “distancia”. De esa forma cualquier persona que lea tu código puede saber facilmente para que es cada cosa.

    P.D. En algunos lenguajes de programación se puede declarar las variables de la forma que lo intentas hacer. Tal vez aquí también, pero en otra versión. Pero si te funciona con lo que te recomiendo ya dejamos este tema como una solución a estos problemas.

Inicia sesión para responder.

Publicación original
0 de 0 Publicaciones Junio 2018
Ahora