
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.
Aquí hay un ejemplo simple de cómo usar `IsNumeric` en VBA:
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.
Nota que `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.