VBA Que Significa Desbordamiento y Como Solucionarlo

Hola Freak!
En el siguiente post os traigo un error que de primeras puedes pensar que tu fichero excel no puede más, que te lo has cargado. Vamos a hablar del error por Desbordamiento en Visual Basic

VBA Desbordamiento

Concretamente el error que da es “Se ha producido el error 6 en tiempo de ejecución: Desbordamiento”

No te preocupes este error tiene solución pero debes revisar a continuación la siguiente tabla de datos y como has definidos las variables.

Tipos de datos en VBA

Boolean: Los dos valores posibles son True y False.

Date: El tamaño de almacenamiento es de 8 bytes y el rango de datos posibles va desde 01/01/0100 al 31/12/9999.

String: Generalmente esta variable se usa para una cadena de tipo texto y permite un máximo de 2 mil millones de caracteres.

Byte: El tamaño de almacenamiento es de 1 byte y el rango de cifras posible va desde el 0 al 255.

Double: Admite valores desde -1,79769313486231E308 a – 4,94065645841247E-324 para valores negativos. Y desde 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos.

Integer: Los valores posibles van entre -32768 y 32767. Los enteros se usan con valores que no pueden contener números fraccionarios.

Long: Los valores posibles van desde -2.147.483.648 al 2.147.483.647. Las variables Long sólo puede contener valores enteros.

Single: Admite valores que van desde -3,402823E38 a -1,401298E-45 para valores negativos y -1,401298E-45 a 3,402823E38 para valores positivos.

Object: Admite cualquier referencia a Objeto.

Currency: El tamaño de almacenamiento es de 8 bytes y el rango de cifras posibles van desde De -922.337.203.685.477.5808 a 922.337.203.685.477,5807.

Variant (con número): Admite cualquier valor numérico con un rango idéntico al de Double.

Variant (con caracteres): Tiene el mismo rango que para el valor de String de longitud variable.

Decimal: Puede guardar valores en un rango que va desde -79.228.162.514.264.337.593.543.950.335 hasta 79.228.162.514.264.337.593.543.950.335 si el valor no contiene cifras decimales.

Como solucionar Desbordamiento en VBA

A continuación te voy a mostrar un ejemplo de como solucionar un Desbordamiento, pero si no coincide con tu caso, tendrás que revisar la tabla anterior con los tipos de datos que hay disponibles en VBA y ver de que otro modo puedes definir la variable para que no te falle la macro.

Ejemplo de Desbordamiento en VBA

Como puedes ver en la imagen inferior hemos definido la variable a como Byte. Si revisas la lista de datos de VBA superior podrás comprobar que el tipo Byte solo admite números desde el 0 al 255 y, sin embargo, la variable
a = 260 por lo que como podéis ver, nos avisa de que ese valor no está dentro de los límites establecidos.

VBA Desbordamiento Excelfreak.com

Para poderle asignar ese valor tendríamos que modificar la definición de la variable. En este caso lo cambiaremos a Integer. Pero ten cuidado, que Integer también tiene restricciones…

Sub PruebaDesbordamiento()

    Dim a As Integer

    a = 260

End Sub

<< Clase 8.5.7: VBA identificar día de la semana – Función WeekDay en VBA
<< Regresar al índice de Curso de Excel Online Avanzado

Autor entrada: Javi de Excelfreak

Deja un comentario