Converter String (Texto) para Número no VBA
In this Article
É muito comum que, às vezes, seja necessário converter números armazenados como textos (string) em formato de número no seu código VBA. Neste tutorial vamos tratar das funções que você precisa utilizar para converter uma string (texto) em outros tipos de dados, como integer, long, double, decimal ou currency (moeda) (Clique aqui para aprender mais sobre conversão de números em strings)
Converter String para Integer
Você pode usar as funções CInt ou CLng para converter uma String para um Inteiro (integer). Se o valor for menor que 0.5 a função irá arredondar para baixo, porém, se a fração for maior que ou igual a 0.5 a função irá arredondar para cima. O código abaixo converterá a string para um Integer:
MsgBox CInt("7.55")
O resultado será:
O código a seguir utiliza a função CLng para converter a string para integer:
MsgBox CLng("13.5")
O resultado será:
Nota: Você pode usar as funções CInt ou CLng para converter uma string para os tipos de dados integer ou long (respectivamente). O tipo de dados Long é o mesmo que o tipo de dados Integer, com a diferença de que o tipo de dados Long é capaz de armazenar números inteiros muito grandes. No passado, essa distinção fazia sentido pois os computadores tinham quantidade de memória bastante reduzida em relação aos computadores atuais. Na programação moderna, não há qualquer razão para não utilizar o tipo de dados Long, uma vez que a quantidade de memória já não é um problema. Desta forma, é sempre recomendado utilizar o tipo de dados Long ao invés do tipo de dados Integer.
Você pode utilizar a Janela de Verificação Imediata para ver como o valor seria processado se não fosse primeiro convertido para integer:
Debug.Print "13.5" + "13.5"
Geralmente, o texto será armazenado como uma variável e essa variável precisará ser convertida para o tipo de dados número, como exibido no código abaixo:
Sub Utilizando_Variaveis()
Dim valorUm As String
valorUm = 5
MsgBox CLng(valorUm) + CLng(valorUm)
End Sub
Converter String para Decimal
Você pode utilizar as funções CDbl ou CDec para converter uma string para o tipo de dados decimal. O código a seguir irá converter a string para o tipo de dados double:
MsgBox CDbl("9.1819")
O resultado será:
O código a seguir converterá a string para o tipo de dados decimal:
MsgBox CDec("13.57") + CDec("13.4")
O resultado será:
Você pode utilizar a Janela de Verificação Imediata para ver como o valor seria processado caso não tivesse sido convertido para os tipos de dados double ou decimal:
Debug.Print "13.57" + "13.4"
O resultado será:
Note: O tipo de dados decimal pode armazenar números muito maiores que o tipo de dados double, dessa forma, é sempre recomendável utilizar o tipo de dados decimal,, caso não tenha certeza sobre qual dos dois usar.
Converter String para Currency
Você pode usar a função CCur para converter uma string para currency (moeda). O código a seguir irá converter uma string para o tipo de dados currency:
Range("A1").Value = CCur("18.5")
O resultado será: