Função Val VBA

Função Val VBA Excel

A função Val em vba vem sob as funções de string, também é uma função embutida em VBA que é usada para obter os valores numéricos de uma variável de dados, suponha que se A variável tiver o valor A10, então a função val nos dará 10 como saída, recebe uma string como argumento e retorna os números presentes na string.

VAL significa VALUE na terminologia VBA. Esta função converte a string contendo números em um número real. Por exemplo, se você fornecer a string de texto “1234 Global”, ela retornará apenas a parte numérica, ou seja, 1234.

Muitas vezes, quando baixamos ou obtemos os dados de números da web, geralmente são armazenados como valores de texto em uma planilha. A conversão de texto em números é a tarefa mais difícil se você não estiver ciente da função correta no Excel. Como uma função de planilha regular, temos uma função chamada VALUE que converterá todos os strings que representam números em números exatos com uma função simples na planilha. Neste artigo, mostraremos como isso pode ser alcançado no VBA usando a função VAL.

Sintaxe

Ele tem apenas um argumento, ou seja, String.

  • String: É simplesmente um valor de string do qual estamos tentando extrair a parte numérica.

Portanto, a função VAL converte a string fornecida em um valor numérico.

Nota: A função VAL sempre ignora os caracteres de espaço e continua a ler os números após o caractere ou caracteres de espaço.

Por exemplo, se a string fornecida for “145 45 666 3”, ele ignorará os caracteres de espaço e retornará o resultado como “145456663”.

Exemplos de função VAL no Excel VBA

Você pode baixar este modelo Excel de função VBA Val aqui - Modelo Excel de função VBA Val

Exemplo 1

Vamos tentar o primeiro exemplo com um número simples, ou seja, “14 56 47”

O código abaixo é para você.

Código:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Converta o acima como 145647 MsgBox k End Sub 

Quando você executa o código VBA usando a tecla F5 ou manualmente, ele retornará o resultado como “145647” ignorando todos os caracteres de espaço conforme mostrado na imagem abaixo.

Exemplo # 2

Neste exemplo, veremos qual é o resultado da string “+456”.

Código:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Converta o acima como 456 MsgBox k End Sub 

Você pode executar este código manualmente ou por meio da tecla F5 para retornar o valor como 456, ignorando +456.

Exemplo # 3

Agora vamos tentar o mesmo número com um sinal negativo.

Código:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Converta o acima como -456 MsgBox k End Sub 

Este código retornará o valor como -456 apenas porque o número com o sinal do operador deve ser mostrado.

Exemplo # 4

Agora vamos tentar esta corda “100 Kg”.

Código:

 Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Ignora KG e retorna apenas 100 MsgBox k End Sub 

Se você executar este código manualmente ou usando a tecla F5, o código acima ignora “KG” e retorna apenas “100” na caixa de mensagem VBA.

Exemplo # 5

Agora tente a string de data, por exemplo, “14-05-2018”.

Código:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Retorna 14 como resultado. MsgBox k End Sub

O código acima retorna 14 como resultado porque a função VAL só pode buscar o valor numérico até encontrar qualquer outro caractere que não seja numérico.

Exemplo # 6

Agora tente a string “7459Good456”.

Código:

Sub Val_Exemplo6 () Dim k como variante k = Val ("7459 Bom 456") 'Retorna 7459 como resultado. MsgBox k End Sub

Isso extrairá os números até encontrar o caractere não numérico, ou seja, o resultado é 7459. Mesmo que haja valores numéricos após o valor não numérico “Bom”, ele ignora completamente os números depois disso.

Exemplo # 7

Agora tente o valor da string “H 12456”.

Código:

Sub Val_Exemplo7 () Dim k como variante k = Val ("H 12456") 'Retorna 0 como resultado. MsgBox k End Sub

Execute o código acima usando a tecla de atalho F5 ou manualmente e ele retorna o resultado como zero. Como o primeiro caractere da string que fornecemos é um caractere não numérico, o resultado é zero.

Exemplo # 8

Agora tente esta string “24545. 2 ”.

Código:

Sub Val_Example8 () Dim k como variante k = Val ("24545. 2") 'Retorna 24545,2 como o resultado. MsgBox k End Sub

O código retorna o resultado como 24545.2 porque a função VBA VAL considera o caractere ponto (.) Como o caractere decimal e retorna o resultado de acordo.