String VBA para Inteiro - Use a função CINT para conversão de dados

String VBA do Excel para Inteiro

String e Integer são tipos de dados comuns, mas frequentemente como parte de nossa análise de dados, podemos querer converter a variável de tipo de dados de string em tipo de dados inteiro e isso é possível usando a função “CINT” no VBA.

Sintaxe da função CINT

“CINT” é categorizado como uma função de conversão de tipo de dados. Esta função converte a expressão fornecida em um tipo de dados Inteiro. Quando digo “Expressão”, deve ser um valor numérico que esteja na faixa do tipo de dados Inteiro em VBA, ou seja, entre -32768 a 32767.

Agora, observe a sintaxe da função CINT no VBA.

  • Expressão é o valor ou a variável que contém o valor a ser convertido em Tipo de dados inteiro.
Nota 1: Apenas quando você passa o valor da expressão deve estar entre -32768 a 32767. Caso contrário, levará a “Erro de estouro”, ou seja, atribuindo o valor que está acima do limite do tipo de dados. Nota 2: a expressão deve ser um valor numérico. Se a expressão for um valor de string ou um valor de texto, isso causará um “Erro de tempo de execução 13: incompatibilidade de tipo”.

Neste artigo, mostraremos a você sobre a conversão do tipo de dados inteiro de string para um inteiro usando a função “CINT”.

Exemplos de função CINT em VBA

Exemplo 1

Vamos realizar o primeiro exemplo de conversão de um número de fração em tipo de dados inteiro.

Código:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • No código acima para a variável “IntegerNumber”, atribuí o valor como “2564.589”.
  • Na próxima linha, apliquei uma função CINT. Portanto, ele converterá o valor fornecido para o número inteiro mais próximo.

Então, obtivemos o resultado - 2565, e o número fornecido é 2564,589. Quando o valor decimal é maior que 0,5, as funções CINT arredondam o número para o próximo número inteiro. Quando o valor decimal é menor ou igual a 0,5, as funções CINT são arredondadas para baixo para o mesmo número inteiro.

Para um exemplo, olhe para o código abaixo onde o número é menor que 0,5

Código:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564 - 0,5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Isso deve dar o resultado como 2564, não 2565.

Exemplo # 2

Agora vou tentar atribuir o número que é maior que o limite do tipo de dados Inteiro.

Código:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Atribuí o número como “IntegerNumber = 51456.785”, que é maior que o limite do tipo de dados Inteiro. Agora, se eu tentar executar o código, ele gerará um erro de estouro no VBA.

Sempre que o número fornecido for maior do que o tipo de dados Inteiro, vamos mostrar a caixa de mensagem simples dizendo “O Número é Mais do que o Limite do Tipo de Dados Inteiro”.

Código:

Sub CINT_Example2() Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 On Error GoTo Message: IntegerResult = CInt(IntegerNumber) Message: If Err.Number = 6 Then MsgBox IntegerNumber & " is More Than the Limit of the Integer Data Type" End Sub

This will show the message like the below whenever the provided number is out of the range of Integer data type.

Example #3

Now I will try and assign the value which is not numeric.

Sub CINT_Example2() Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" IntegerResult = CInt(IntegerNumber) MsgBox IntegerResult End Sub

I have assigned the value as “Hello” which is not numeric. This causes “Type Mismatch Error”.

Instead of showing the error like this, let’s put a simple information message box in front of the user. The below code will put the message box saying “The Provided Expression Value is Non-Numeric, So cannot be converted”.

Code:

Sub CINT_Example2() Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" On Error GoTo Message: IntegerResult = CInt(IntegerNumber) Message: If Err.Number = 13 Then MsgBox IntegerNumber & " : The Provided Expression Value is Non-Numeric, So cannot be converted" End Sub

This will show the message box below.

Things to Remember

  • CINT converts value from another data type to an integer data type.
  • Integer can hold values from -32768 to 32767 anything above these numbers will cause an overflow error.
  • Apenas o tipo de dados de string contém dados numéricos que serão convertidos em um tipo de dados inteiro.

Artigos Recomendados

Este foi um guia para VBA String to Integer. Aqui, discutimos exemplos de string para inteiro no Excel VBA usando a função CINT junto com exemplos práticos e modelo do Excel para download. Abaixo estão alguns artigos úteis relacionados ao VBA -

  • VBA Split String into Array
  • String VBA até a data
  • Comparação de String VBA
  • VBA Substituir String

Artigos interessantes...