Contenido
La función IsNumeric en VBA (Visual Basic for Applications) comprueba si una expresión se puede evaluar como un número. Es útil cuando se quiere validar datos de entrada antes de realizar operaciones matemáticas o para evitar errores en tiempo de ejecución causados por tipos de datos no numéricos.
Para usar la función IsNumeric, simplemente pase la expresión que desea verificar como su argumento. La función devolverá True si la expresión es numérica y False si no lo es.
Ejemplo
Sub CheckIfNumeric()
Dim testValue As Variant
'Asignar valor a la variable
testValue = "123.45"
'Usar IsNumeric para verificar si testValue es numérico
If IsNumeric(testValue) Then
MsgBox testValue & " es numérico"
Else
MsgBox testValue & " no es numérico"
End If
End Sub
En el ejemplo anterior, la función IsNumeric devuelve True porque «123.45» es una cadena que representa un número válido. Si cambias testValue a algo que no es un número, por ejemplo, «abc», la función devolverá False.
Aquí hay otro ejemplo que intenta convertir una cadena a un número usando IsNumeric para validar primero la entrada:
Sub ConvertToNumber()
Dim stringValue As String
Dim numericValue As Double
stringValue = "456.789"
'Verificar primero con IsNumeric antes de convertir
If IsNumeric(stringValue) Then
numericValue = CDbl(stringValue)
MsgBox stringValue & " ha sido convertido a número: " & numericValue
Else
MsgBox stringValue & " no se puede convertir en un número."
End If
End Sub
En este caso, si stringValue es numérico, se convierte a Double usando CDbl y luego se muestra el valor numérico. Si no es numérico, se muestra un mensaje de error.
Si IsNumeric regresa True para cualquier expresión que pueda ser evaluada como un número, lo que incluye números en formatos de cadena, así como cualquier cosa que VBA pueda convertir implícitamente a un número, como fechas o booleanos.