Error 5: Argumento o llamada a proc no válida en Visual Basic [SOLUCIONADO]

Abordaremos un problema común en la programación de Visual Basic: el error 5 que indica una llamada a procedimiento no válida o un argumento incorrecto. Este artículo profundizará en sus causas, cómo identificarlo y las múltiples maneras de solucionarlo.

¿Qué es el error 5 en Visual Basic?

El error 5 surge cuando nuestro código intenta realizar una llamada a un procedimiento o usar un argumento que el sistema no considera válido. Los elegantes mensajes de error de Visual Basic pueden a veces ser ambiguos, y este no es una excepción.

Causas comunes

Este problema surge normalmente cuando intentamos usar una función que requiere un cierto tipo o número de argumentos y no se cumplen las condiciones.

Sub test()
    Dim num As Integer
    num = Application.VLookup(10, Range("A1:C10"), 2, False)
End Sub

En este ejemplo, si la función VLookup no encuentra un valor que coincida en el rango dado, genera el error 5.

Soluciones

Solución 1: Revisar los argumentos

El primer paso siempre debe ser revisar los argumentos de la función.

Sub test()
    Dim num As Variant
    num = Application.VLookup(10, Range("A1:C10"), 2, False)
    
    If IsError(num) Then
        num = 0
    End If
End Sub

Aquí, hemos modificado el tipo de la variable num a Variant (que puede contener cualquier tipo de dato) y agregamos una estructura If para manejar el caso en el que la función VLookup retorna un error.

Solución 2: Controlar los errores con Try…Catch

   Sub test()
        Dim num As Variant
        On Error GoTo ErrorHandler
        num = Application.VLookup(10, Range("A1:C10"), 2, False)
        
        Exit Sub
            ErrorHandler:
                num = 0
                Resume Next
    End Sub

En este caso, si un error se produce en el intento de asignar un valor a num, el control se traslada a la etiqueta ErrorHandler, donde se asigna un valor por defecto y se reanuda la ejecución.

Puntos a tener en cuenta

Es importante recordar que el error número 5 en Visual Basic es general y puede ser causado por varios problemas. Si bien las soluciones proporcionadas aquí deberían abordar la mayoría de los casos, siempre será necesario entender y manejar bien las excepciones en nuestro código.

Esperamos que este artículo te haya sido útil. Por favor, siéntete libre de dejar tus comentarios y preguntas.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad