Uso de Isnumeric e Isnumber no VBA
In this Article
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.