Error de desbordament de VBA | Com solucionar-los l'error de desbordament del temps d'execució 6?

Error de desbordament Excel VBA

Els errors formen part integrant de qualsevol llenguatge de codificació, però trobar per què arriba aquest error és el que us fa distingir-vos de la multitud en les entrevistes. Els errors no són estranys per a la codificació VBA, els errors no són intencionats, de manera que fer la tasca difícil és trobar la causa de l’error. A VBA tenim alguns dels errors predefinits i conèixer-los us permet corregir l’error molt ràpidament. En aquest article, us mostrarem el RUN TIME ERROR 6: OverFlow. Seguiu l'article complet per conèixer l'error, els motius de l'error de desbordament de VBA i com solucionar-los.

Què és l’error 6 del temps d’execució: error de desbordament a VBA?

Quan declarem la variable, els assignem un tipus de dades. Hauríem de ser completament conscients dels pros i els contres de cada tipus de dades. Aquí apareix l’error de temps d’execució 6: OverFlow. Quan sobrecarreguem el tipus de dades amb un valor que és superior a la capacitat del tipus de dades, obtindrem aquest error.

Per exemple: si declareu la variable com Byte.

Atenuar el nombre com a byte

El tipus de dades de bytes pot contenir valors de 0 a 255. Ara assignaré el valor com a 240.

Nombre = 240

Hauria de funcionar bé perquè el valor que hem assignat és inferior al límit del valor de Byte de 255. En el moment en què assignem el valor superior a 255, es produeix l’error de Error de temps d'execució 6: Desbordament.

Aquesta és la visió general de l’error de temps d’execució 6: OverFlow. Veurem alguns exemples en detall.

Exemples d'error de temps d'execució 6: OverFlow a VBA

Vegem alguns exemples d'error de desbordament VBA a Excel.

Exemple 1: error de desbordament amb tipus de dades de bytes

Com he dit, és important conèixer els pros i els contres del tipus de dades VBA que utilitzarem. Per obtenir un exemple, mireu el codi següent.

Codi:

 Sub OverFlowError_Example1 () Atenuació del nombre com a nombre de bytes = 256 MsgBox Number End Sub 

Per a la variable "Nombre" he assignat el valor com a 256. Quan executi aquest codi obtindrem l'error següent.

Això es deu al tipus de dades Byte pot contenir valors de 0 a 255. Per tant, provoca un error. Per solucionar l'error, cal canviar el tipus de dades o bé reduir el valor que hem assignat a la variable "Nombre".

Exemple 2: error de desbordament VBA amb tipus de dades enter

El nombre enter VBA és un tipus de dades que pot contenir valors des de -32768 fins a 32767. Per obtenir un exemple, mireu el codi següent.

Codi:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 25656 MsgBox MyValue End Sub 

Quan executi aquest codi, obtindrem el valor de la variable "El meu valor" al quadre de missatge, és a dir, 25656.

Ara reassignaré el número a la variable com a "45654".

Codi:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 45654 MsgBox MyValue End Sub 

Ara, si intento executar el codi, es produirà un error perquè el tipus de dades que hem declarat només pot contenir el màxim de 32767 per als números positius i per al límit de números negatius és -32768.

Exemple 3: error de desbordament VBA amb tipus de dades llargs

El tipus de dades llarg és el tipus de dades més utilitzat a Excel VBA. Això pot contenir valors des de –2.147.483.648 fins a 2.147.486.647. Qualsevol cosa anterior que causi un error.

Codi:

 Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = 5000 * 457 MsgBox MyValue End Sub 

Això provocarà un error de desbordament.

Per solucionar aquest problema, hem d’utilitzar la funció CLNG a VBA. A continuació es mostra un exemple del mateix.

Codi:

 Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = CLng (5000) * 457 MsgBox MyValue End Sub 

Això hauria de funcionar bé.

Aquesta és la visió general de l’error de temps d’execució 6: OverFlow. Per solucionar aquest error, hem de ser completament conscients dels tipus de dades. Torneu, doncs, als conceptes bàsics, feu el que és correcte i tot quedarà al seu lloc.

Podeu descarregar aquesta plantilla Excel d'error de desbordament VBA aquí: plantilla Excel d'error de desbordament VBA