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