Introdução ao erro de estouro de VBA

Encontramos muitos tipos de erro ao trabalhar com o VBA. Os erros são chamados de erros de tempo de execução quando encontram um erro ao executar o código. Além disso, todo código possui um certo código atribuído na programação do VBA. No Excel, um desses erros é o erro VBA Overflow. O código para esse erro é o erro de tempo de execução 6, que significa excesso na programação do VBA. Vamos aprender sobre esse erro neste artigo.

Agora sabemos o que esse erro de estouro é um tipo de erro, agora vamos entender o que esse erro significa. Se declararmos qualquer variável como um determinado tipo de dados e o valor da variável exceder o limite do tipo de dados da variável, obteremos o erro de estouro. Por exemplo, se definirmos uma variável como inteiro e sabemos que o inteiro pode conter valores até 32767 para números positivos e -32768 para números negativos. Portanto, se fornecermos alguma entrada além desse intervalo, encontraremos um erro de estouro no VBA.

Erro de estouro em termos leigos significa que sobrecarregamos um tipo de dados com os valores que ele pode conter. Tais casos nos encontrarão com esse erro. Portanto, para evitar esse erro, precisamos estar cientes do tipo de dados que estamos usando, para que possamos evitá-lo.

Veremos através de vários exemplos que, como em diferentes tipos de dados, possivelmente encontraremos esse erro.

Como usar o erro de estouro de VBA no Excel?

Aprenderemos como usar uma função de erro de estouro de VBA com alguns exemplos no Excel.

Você pode baixar este modelo de Excel do VBA Overflow Flow Error aqui - Modelo de Excel do VBA Overflow Flow Error

Exemplo # 1 - Erro de estouro

Para o primeiro exemplo, vamos usar o tipo de dados Inteiro. Vamos tentar exceder os valores para que as variáveis ​​não possam armazená-lo e ver o erro que encontramos.

Siga as etapas abaixo para usar a função Erro de estouro de VBA no Excel:

Etapa 1: para começar basicamente com o VBA, a primeira coisa que precisamos fazer é ativar a guia do desenvolvedor e clicar nela para abrir a opção Editor do VB a partir do Visual Basic, conforme mostrado na captura de tela abaixo,

Etapa 2: Clique nele e insira um módulo da seguinte maneira: Depois que clicarmos no módulo. Clique duas vezes nele e ele abrirá outra janela para nós, onde escreveremos nosso código.

Etapa 3 : veremos uma janela em branco no lado direito de nós, declararemos uma subfunção e é assim que iniciaremos uma macro da seguinte maneira:

Código:

 Subamostra () End Sub 

Etapa 4: declarar uma variável como um número inteiro para que ele possa manter um valor inteiro para nós,

Código:

 Subamostra () Dim A Como Inteiro Final Sub 

Etapa 5: agora na variável A, armazene esse valor que excederá o tipo de dados da seguinte maneira:

Código:

 Subamostra () Dim A Como Inteiro A = 4896 * 5000 End Sub 

Etapa 6: agora exiba o valor de A usando a função msgbox,

Código:

 Subamostra () Dim A Como Inteiro A = 4896 * 5000 MsgBox A End Sub 

Etapa 7: execute o código acima e veja qual resultado obtemos,

Recebemos esse erro porque 4896 * 5000 está acima do limite de número positivo para o tipo de dados inteiro manter e a variável A é excedida por esse valor, portanto, encontramos esse erro.

Exemplo # 2 - Erro de estouro

Agora, neste exemplo, vamos BYTE tipo de dados. Sabemos que o tipo de dados de bytes pode conter valores de 0 a 255, mas qualquer valor que não seja esse intervalo nos fornecerá um erro. Vamos descobrir.

Etapa 1: já temos nosso módulo inserido, podemos trabalhar no mesmo ou criar um novo. Mas vamos trabalhar no mesmo módulo que inserimos. Clique duas vezes no módulo para entrar na janela de código novamente,

Etapa 2: declarar outra subfunção da seguinte maneira:

Código:

 Sub Amostra1 () End Sub 

Etapa 3: declarar uma variável como tipo de dados BYTE da seguinte maneira:

Código:

 Sub Sample1 () Dim A Como Byte End Sub 

Etapa 4: agora na variável A, armazene o valor acima de 255 da seguinte maneira:

Código:

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

Etapa 5: use uma função msgbox para exibir o valor de A,

Código:

 Sub Amostra1 () Dim A como Byte A = 266 MsgBox A End Sub 

Etapa 6: vamos executar o código acima pressionando F5 e ver o resultado,

Etapa 7: agora vamos tentar alterar o valor de A para 244 e executar novamente o código para ver o resultado,

Código:

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

Etapa 8: quando executamos o código novamente, vemos o seguinte resultado,

Quando executamos pela primeira vez a variável de código A, possui valores acima do intervalo que um tipo de dados BYTE pode conter, mas, na segunda instância, a variável A possui dados em seu intervalo de tipos de dados, portanto, não encontramos o erro de estouro.

Exemplo # 3 - Erro de estouro

Agora vamos usar o tipo de dados LONG como exemplo, pois é o tipo de dados mais usado entre os programadores.

Etapa 1: Trabalharemos novamente no mesmo módulo que inserimos anteriormente. Só precisamos clicar duas vezes no módulo e estamos nele.

Etapa 2: declarar uma subfunção, como mostrado na captura de tela.

Código:

 Sub Amostra2 () End Sub 

Etapa 3: declarar uma variável como um tipo de dados LONG da seguinte maneira.

Código:

 Sub Amostra2 () Dim A As Long End Sub 

Etapa 4: Agora, semelhante aos exemplos acima, vamos sobrecarregar essa variável, fazendo com que ela mantenha valores acima de seu intervalo da seguinte maneira.

Código:

 Sub Amostra2 () Dim A Quanto tempo A = 2000 * 365 Fim Sub 

Etapa 5: use uma função msgbox para exibir o valor de A da seguinte maneira.

Código:

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

Etapa 6: clique no botão Executar acima e verifique se encontramos um erro de estouro.

Etapa 7: Agora existe um método para superar esse erro no tipo de dados longo, usando a função CLNG da seguinte maneira.

Código:

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

Etapa 8: Agora, se executarmos novamente o código, podemos ver o seguinte resultado.

Agora, o que a função CLNG fez? Ele converteu o valor em um número inteiro longo que a variável pode conter.

Como superar o erro de estouro no VBA

Quando encontramos um erro de estouro no VBA, que significa qualquer uma de nossas variáveis, não há mais valores que não podem conter. Precisamos identificar a variável e corrigi-la. Além disso, temos a função CLNG para tipos de dados longos para nos ajudar. Mas conhecer nosso tipo de dados realmente ajuda.

Coisas para lembrar

Há algumas coisas que precisamos lembrar sobre o erro de estouro no VBA:

  • Erro de estouro é um erro de tempo de execução.
  • O código de erro para o erro de estouro é 6.
  • Para superar o erro de estouro, precisamos saber que tipo de dados pode conter quantos valores.
  • A função CLNG ajuda no erro de estouro para tipos de dados longos.

Artigos recomendados

Este é um guia para o erro de estouro do VBA. Aqui discutimos como usar a função de erro de estouro do Excel VBA, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Copiar Colar Função no VBA
  2. Função Excel de Substring
  3. Subscrito VBA fora do intervalo
  4. Fórmula ISNUMBER do Excel

Categoria: