Introducción al error de desbordamiento de VBA

Nos encontramos con muchos tipos si se produce un error al trabajar con VBA. Los errores se denominan errores de tiempo de ejecución cuando han encontrado un error al ejecutar el código. Además, cada código tiene un cierto código asignado en la programación de VBA. En Excel uno de esos errores es el error de desbordamiento de VBA. El código para este error es el error de tiempo de ejecución 6, que significa desbordamiento en la programación de VBA. Aprenderemos sobre este error en este artículo.

Ahora sabemos qué es ese error de desbordamiento, es un tipo de error. Ahora, comprendamos qué significa este error. Si declaramos cualquier variable como un tipo de datos determinado y el valor de la variable excede el límite del tipo de datos de la variable, obtenemos el error de desbordamiento. Por ejemplo, si definimos una variable como un entero y sabemos que ese entero puede contener valores de hasta 32767 para números positivos y -32768 para números negativos. Entonces, si proporcionamos cualquier entrada más allá de ese rango, encontraremos un error de desbordamiento en VBA.

El error de desbordamiento en términos simples significa que sobrecargamos un tipo de datos con los valores que puede contener. Tales casos nos encontrarán con este error. Por lo tanto, para evitar este error, debemos ser conscientes de qué tipo de datos estamos utilizando para poder evitarlo.

Veremos a través de varios ejemplos que, en diferentes tipos de datos, posiblemente encontraremos este error.

¿Cómo utilizar el error de desbordamiento de VBA en Excel?

Aprenderemos cómo usar una función de error de desbordamiento de VBA con algunos ejemplos en Excel.

Puede descargar esta plantilla de Excel de error de sobreflujo de VBA aquí - Plantilla de Excel de error de sobreflujo de VBA

Ejemplo # 1 - Error de desbordamiento

Para el primer ejemplo, usemos el tipo de datos Integer. Intentemos desbordar los valores para que las variables no puedan almacenarlo y ver el error que encontramos.

Siga los pasos a continuación para usar la función de error de desbordamiento de VBA en Excel:

Paso 1: Para comenzar básicamente con VBA, lo primero que debemos hacer es habilitar la pestaña de nuestro desarrollador y luego hacer clic en él para abrir el editor VB desde la opción de Visual Basic como se muestra en la captura de pantalla a continuación,

Paso 2: haga clic en él e inserte un módulo de la siguiente manera, una vez que hagamos clic en el módulo. Haga doble clic en él y nos abrirá otra ventana donde escribiremos nuestro código.

Paso 3 : Veremos una ventana en blanco en el lado derecho de nosotros, declararemos una subfunción y así es como comenzamos una macro de la siguiente manera,

Código:

 Sub muestra () End Sub 

Paso 4: declara una variable como un entero para que pueda contener un valor entero para nosotros,

Código:

 Submuestra () Dim A como número entero Sub final 

Paso 5: Ahora, en la Variable A, almacene dicho valor que desbordará el tipo de datos de la siguiente manera,

Código:

 Submuestra () Dim A como entero A = 4896 * 5000 End Sub 

Paso 6: Ahora muestra el valor de A usando la función msgbox,

Código:

 Submuestra () Dim A como entero A = 4896 * 5000 MsgBox A End Sub 

Paso 7: Ejecute el código anterior y vea qué resultado obtenemos,

Recibimos este error porque 4896 * 5000 está por encima del límite de número positivo para el tipo de datos entero a mantener y la variable A se desborda por este valor, por lo que encontramos este error.

Ejemplo # 2 - Error de desbordamiento

Ahora, en este ejemplo, permítanos el tipo de datos BYTE. Sabemos que el tipo de datos de byte puede contener valores de 0 a 255, pero cualquier valor que no sea ese rango nos dará un error. Déjanos averiguarlo.

Paso 1: Ya tenemos nuestro módulo insertado, podemos trabajar en el mismo o crear uno nuevo. Pero trabajemos en el mismo módulo que insertamos. Haga doble clic en el módulo para ingresar nuevamente a la ventana de código,

Paso 2: declare otra subfunción de la siguiente manera,

Código:

 Sub Sample1 () End Sub 

Paso 3: declare una variable como tipo de datos BYTE de la siguiente manera,

Código:

 Sub Sample1 () Dim A como Byte End Sub 

Paso 4: Ahora, en la Variable A, el valor de almacenamiento es superior a 255 de la siguiente manera

Código:

 Sub Muestra1 () Dim A Como Byte A = 266 End Sub 

Paso 5: Use una función de msgbox para mostrar el valor de A,

Código:

 Submuestra1 () Dim A como byte A = 266 MsgBox A End Sub 

Paso 6: ejecutemos el código anterior presionando F5 y veamos el resultado,

Paso 7: Ahora intentemos cambiar el valor de A a 244 y vuelva a ejecutar el código para ver el resultado,

Código:

 Sub Sample1 () Dim A como Byte A = 244 MsgBox A End Sub 

Paso 8: cuando volvemos a ejecutar el código, vemos el siguiente resultado,

Cuando ejecutamos por primera vez, la variable de código A tiene valores superiores al rango que puede contener un tipo de datos BYTE, pero en la segunda instancia, la variable A tiene datos en su rango de tipo de datos, por lo que no encontramos el error de desbordamiento.

Ejemplo # 3 - Error de desbordamiento

Ahora usemos el tipo de datos LARGO como ejemplo, ya que es el tipo de datos más utilizado entre los programadores.

Paso 1: Volveremos a trabajar en el mismo módulo que insertamos anteriormente. Solo necesitamos hacer doble clic en el módulo y estamos en él.

Paso 2: declara una subfunción como se muestra en la captura de pantalla.

Código:

 Sub Sample2 () End Sub 

Paso 3: declare una variable como un tipo de datos LARGO de la siguiente manera.

Código:

 Sub Sample2 () Dim A como Long End Sub 

Paso 4: ahora, similar a los ejemplos anteriores, desbordemos esta variable haciendo que mantenga valores por encima de su rango de la siguiente manera.

Código:

 Sub Sample2 () Dim A As Long A = 2000 * 365 End Sub 

Paso 5: Use una función de msgbox para mostrar el valor de A de la siguiente manera.

Código:

 Sub Sample2 () Dim A As Long A = 2000 * 365 MsgBox A End Sub 

Paso 6: haga clic en el botón Ejecutar anterior y vea que encontramos un error de desbordamiento.

Paso 7: ahora hay un método para superar este error en el tipo de datos largos utilizando la función CLNG de la siguiente manera.

Código:

 Sub Sample2 () Dim A As Long A = CLng (2000) * 365 MsgBox A End Sub 

Paso 8: Ahora, si volvemos a ejecutar el código, podemos ver el siguiente resultado.

Ahora, ¿qué hizo la función CLNG? Convirtió el valor en un entero largo que la variable puede contener.

Cómo superar el error de desbordamiento en VBA

Cuando encontramos un error de desbordamiento en VBA que significa cualquiera de nuestras variables, no más es tener algunos valores que no puede contener. Necesitamos identificar la variable y rectificarla. Además, tenemos la función CLNG para tipos de datos largos para ayudarnos. Pero conocer nuestro tipo de datos realmente ayuda.

Cosas para recordar

Hay ciertas cosas que debemos recordar sobre el error de desbordamiento en VBA:

  • El error de desbordamiento es un error de tiempo de ejecución.
  • El código de error para el error de desbordamiento es 6.
  • Para superar el error de desbordamiento, debemos saber qué tipo de datos puede contener cuántos valores.
  • La función CLNG ayuda en el error de desbordamiento para tipos de datos largos.

Artículos recomendados

Esta es una guía para el error de desbordamiento de VBA. Aquí discutimos cómo usar la función de error de desbordamiento de Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Función de copiar y pegar en VBA
  2. Función de subcadena de Excel
  3. VBA Subíndice fuera de rango
  4. Fórmula ISNUMBER de Excel

Categoría: