VBA Converter String de Texto em Número

Pode ser necessário converter números armazenados como texto em números reais em seu código VBA. Neste tutorial, vamos examinar as funções que você precisa usar para converter uma string em um tipo de dados inteiro, longo, duplo, decimal ou moeda (Clique aqui para aprender sobre a conversão de números em strings)

Converter String em Inteiro

Você pode usar a função CInt ou CLng para converter uma string em um inteiro. Se a fração for menor que 0,5, a função será arredondada para baixo; se a fração for maior ou igual a 0,5, a função será arredondada para cima. O código a seguir converterá uma string em um inteiro:

1 MsgBox CInt ("7,55")

O resultado é:

O código a seguir usa a função CLng para converter uma string em um inteiro:

1 MsgBox CLng ("13,5")

O resultado é:

Observação: Você pode usar a função CInt ou CLng para converter uma string em um número inteiro ou tipos de dados longos (respectivamente). O tipo de dados longos é o mesmo que um tipo de dados inteiro, exceto que números maiores são permitidos. No passado, a distinção era exigida por causa de restrições de memória. Na programação moderna, não há razão para não usar o tipo de dados longos, uma vez que a memória não é mais um problema. Portanto, é sempre melhor usar um tipo de dados longo em vez de um inteiro.

Você pode usar a janela imediata para ver como o valor seria processado se não fosse convertido em um número inteiro:

1 Debug.Print "13,5" + "13,5"


Normalmente, o texto será armazenado como uma variável e essa variável precisará ser convertida em um tipo de dados numérico, conforme mostrado no código a seguir:

1234567 Sub Using_Variables ()Dim valueOne As StringvalueOne = 5MsgBox CLng (valueOne) + CLng (valueOne)End Sub

Converter string em decimal

Você pode usar a função CDbl ou CDec para converter uma string em decimal. O código a seguir converteria uma string em um tipo de dados duplo:

1 MsgBox CDbl ("9.1819")

O resultado é:

O código a seguir converteria uma string em um tipo de dados decimal:

1 MsgBox CDec ("13.57") + CDec ("13.4")

O resultado é:

Você pode usar a janela imediata para ver como o valor seria processado se não fosse convertido para um tipo de dados duplo ou decimal:

1 Debug.Print "13,57" + "13,4"

O resultado é:

Observação: O tipo de dados decimal pode armazenar números maiores do que o tipo de dados double, por isso é sempre aconselhável usar o tipo de dados decimais quando você não tiver certeza.

Converter string em moeda

Você pode usar a função CCur para converter uma string em uma moeda. O código a seguir converteria uma string em um tipo de dados de moeda:

1 Intervalo ("A1"). Valor = CCur ("18,5")

O resultado é:

wave wave wave wave wave