Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Errores comunes en VBA

| Sin comentarios

 

ERROR TIPO 6 (Desbordamiento):

Es cuando tratas de ingresar en un tipo de dato, un dato mayor al que soporta.

 

Sub tipo6()

Dim multiplicación As Double

Multiplicación = 30000 * 800 ' (ambos datos son enteros o Integer, por lo que se asume que el resultado será un entero o Integer)

MsgBox multiplicación

End Sub

 

El resultado es mayor del alcance de un dato entero o Integer. Para corregir este error debemos asumir que un dato será de mayor extensión, es decir, Double o Long. Para hacer eso debemos convertir uno de mis datos enteros a otro tipo de dato, de preferencia el dato mayor.

Sub tipo6()

Dim multiplicación As Double

Multiplicación = CDBL (30000) * 800 ' (el primer dato se convierte en Double, el segundo se queda en entero. Se asume que el resultado será Double)

MsgBox multiplicación

End Sub

 

ERROR TIPO 9 (Fuera de Rango):

Es cuando se realiza un arreglo o rango con una extensión y la operación excede la extensión del rango definido, lo que no permite ejecutar la macro.

 

Sub tipo9()

Dim valores(10) As Double

Valores(11) = 32000

MsgBox valores(11)

End Sub

 

Para corregir el error, se debe ampliar el rango inicial que define la macro, o que las partes de la macro se encuentren sujetas al rango inicial.

 

Sub tipo9()

Dim valores(10) As Double -> Dim valores(11) As Double

Valores(10) = 32000 -> Valores(11) = 32000

MsgBox valores(10) -> MsgBox valores(11)

End Sub

 

ERROR TIPO 11(División por cero):

Sucede cuando se realizan operaciones y no necesariamente se obtiene el dato 0, sino que deriva de una resta que divide y hace que aparezca el error. Se tiene que tener mucho cuidado con las operaciones que se realizan.

 

Sub tipo11()

Dim división, divisor As Double

divisor = 0

división= 45000 / divisor

End Sub

 

Para evitar llegar a este error, es recomendable colocar un mensaje de aviso con una restricción (IF). De esta manera no se llegará al error y no se continuará la macro, saldrá un mensaje de aviso y saldrá de la macro.

Sub tipo11()

Dim división, divisor As Double

divisor = 0

If divisor = 0 Then 

MsgBox “El divisor es cero, revise el dato”

Exit Sub

End If

división= 45000 / divisor

End Sub

 

ERROR TIPO 13(Tipo):

Es un error cuando el tipo de variable no coincide con los valores que se están ingresando, no son los mismos.

Sub tipo13()

Dim dato As Double

Dato = “LLL”

End Sub

 

Para corregir este tipo de error es necesario cambiar el tipo de dato a la variable o ingresar los datos que la variable solicita

 

Sub tipo13()

Dim dato As Double

Dato = 100

End Sub

 

ERROR TIPO 52(Archivo incorrecto):

Es un error que ocurre cuando se quiere abrir un archivo y se indica una ruta para abrir el archivo, pero no la macro no lo llega abrir. Esto sucede cuando la ruta que se puso en la macro no coincide con la ruta real donde se encuentra el archivo que se quiere abrir. Se debe revisar toda la ruta en general, no solo el nombre del archivo que se quiere abrir, la ruta se considera la carpeta y el disco en donde se encuentra el archivo. 

Una vez que la ruta esta correctamente definida, la macro se ejecutará y abrirá el archivo que se solicita.

 

Por: Diego Talledo

Deja una respuesta

Los campos requeridos estan marcados con *.