Uso de IsNumeric e IsNumber en VBA

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 26, 2022

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! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples