Uso de Isnumeric e Isnumber no VBA

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 5, 2023

Este tutorial ensinará a você como usar as funções IsNumeric e IsNumber no VBA para verificar se os valores são números.

IsNumeric é uma função integrada do VBA, enquanto IsNumber é uma função do Excel que pode ser chamada a partir do código VBA.

Diferença Entre IsNumber e IsNumeric no VBA

IsNumber verifica se um valor está armazenado como um número. Por outro lado, IsNumeric verifica se um valor pode ser convertido em um número.

Por exemplo, se você passar uma célula em branco como parâmetro, IsNumber retornará FALSE, enquanto IsNumeric retornará TRUE. Além disso, se você passar uma célula contendo um número armazenado como texto, IsNumber retornará FALSE e IsNumeric TRUE.

Você precisa prestar atenção a essas limitações de ambas as funções e decidir em quais casos é melhor usar IsNumeric e quando IsNumber.

Uso do IsNumeric no VBA

IsNumeric é a função VBA que verifica se um valor é numérico e retorna um resultado booleano TRUE ou FALSE.

A função pode receber uma variável ou um valor de célula.

Aqui está um exemplo de como obter um valor de célula:

If IsNumeric(Planilha1.Range("A1").Value) = True Then
    MsgBox "O valor em A1 é numérico"
Else
    MsgBox "O valor em A1 não é numérico"
End If

Neste exemplo, verificamos se o valor da célula A1 é numérico usando a função IsNumeric. Essa função retorna a mensagem apropriada, dependendo do resultado da função.

O próximo exemplo executa a mesma operação, só que com uma variável em vez de um valor de célula:

Dim n as Variant

n = Planilha1.Range("A1").Value

If IsNumeric(n) = True Then
    MsgBox "O valor em A1 é numérico"
Else
    MsgBox "O valor em A1 não é numérico"
End If

Uso do IsNumber no VBA

IsNumber é uma função do Excel que pode ser usada no VBA. Ela tem um resultado quase semelhante ao de IsNumeric. Vamos dar uma olhada no exemplo da função IsNumber:

If Application.WorksheetFunction.IsNumber(Planilha1.Range("A1").Value) = True Then

    MsgBox "O valor em A1 é numérico"

Else

    MsgBox "O valor em A1 não é numérico"

End If

Como você pode ver no código, a diferença está na sintaxe ao chamar a função. Como IsNumber é a função do Excel, precisamos colocar Application.WorksheetFunction antes da chamada da função.

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA