Uso de IsNumeric e IsNumber en VBA
In this Article
Este tutorial le enseñará a utilizar las funciones IsNumeric e IsNumber en VBA para comprobar si los valores son números. IsNumeric es una función incorporada en VBA, mientras que IsNumber es una función de Excel que puede ser llamada desde el código VBA.
Diferencia entre IsNumber e IsNumeric en VBA
IsNumber comprueba si un valor está almacenado como un número. Mientras que IsNumeric comprueba si un valor puede ser convertido en un número. Por ejemplo, si pasas una celda en blanco como parámetro, IsNumber devolverá FALSE, mientras que IsNumeric devolverá TRUE. Además, si pasa una celda que contiene un número almacenado como texto, IsNumber devolverá FALSE e IsNumeric TRUE. Es necesario prestar atención a estas limitaciones de ambas funciones y decidir en qué casos es mejor utilizar IsNumeric y cuándo IsNumber.
Uso de IsNumeric en VBA
IsNumeric es la función de VBA que comprueba si un valor es numérico y devuelve un booleano TRUE o FALSE como resultado. La función puede tomar una variable o un valor de celda. Este es un ejemplo de cómo tomar un valor de celda:
Sub esNumerico()
If IsNumeric(Hoja1.Range("A1").Value) = True Then
MsgBox "El valor de A1 es numérico"
Else
MsgBox "El valor de A1 No es numérico"
End If
End Sub
En este ejemplo, comprobamos si el valor de la celda A1 es numérico utilizando la función IsNumeric. Esta función devuelve el mensaje apropiado, dependiendo del resultado de la función. Este siguiente ejemplo realiza la misma operación, excepto con una variable en lugar de un valor de celda:
Sub esNumerico()
Dim n As Variant
n = Hoja1.Range("A1").Value
If IsNumeric(n) = True Then
MsgBox "El valor de A1 es numérico"
Else
MsgBox "El valor de A1 No es numérico"
End If
End Sub
Uso de IsNumber en VBA
IsNumber es una función de Excel que se puede utilizar en VBA. Tiene una salida casi similar a la de IsNumeric. Veamos el ejemplo de la función IsNumber:
Sub esNumero()
If WorksheetFunction.IsNumber(Hoja1.Range("A1").Value) = True Then
MsgBox "El valor en A1 es un número"
Else
MsgBox "El valor en A1 No es un número"
End If
End Sub
Como puedes ver en el código, la diferencia está en la sintaxis al llamar a la función. Como IsNumber es la función de Excel, tenemos que poner WorksheetFunction antes de la llamada a la función.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!