Función VBA Val

Función Excel VBA Val

La función Val en vba viene bajo las funciones de cadena, también es una función incorporada en VBA que se usa para obtener los valores numéricos de una variable de datos, supongamos que si una variable tiene un valor como A10, entonces la función val nos dará 10 como salida, es toma una cadena como argumento y devuelve los números presentes en la cadena.

VAL significa VALOR en terminología de VBA. Esta función convierte la cadena que contiene números en un número real. Por ejemplo, si proporciona la cadena de texto "1234 Global", solo devolverá la parte numérica, es decir, 1234.

A menudo, cuando descargamos u obtenemos los datos de los números web, generalmente se almacenan como valores de texto en una hoja de cálculo. La conversión de texto a números es la tarea más difícil si no conoce la función correcta en Excel. Como función normal de la hoja de trabajo, tenemos una función llamada VALOR que convertirá toda la cadena que representa números en números exactos con una función simple en la hoja de trabajo. En este artículo, mostraremos cómo se puede lograr esto en VBA usando la función VAL.

Sintaxis

Tiene un solo argumento, es decir, String.

  • Cadena: es simplemente un valor de cadena que estamos tratando de sacarle la parte numérica.

Entonces, la función VAL convierte la cadena proporcionada en un valor numérico.

Nota: La función VAL siempre ignora los espacios y continúa leyendo los números después del espacio o los caracteres.

Por ejemplo, si la cadena proporcionada es "145 45 666 3", ignorará los espacios y devolverá el resultado como "145456663".

Ejemplos de función VAL en Excel VBA

Puede descargar esta plantilla de Excel de función VBA Val aquí - Plantilla de Excel de función VBA Val

Ejemplo 1

Probemos el primer ejemplo con un número simple, es decir, "14 56 47"

El siguiente código es para ti.

Código:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Convierta lo anterior como 145647 MsgBox k End Sub 

Cuando ejecuta el código VBA usando la tecla F5 o manualmente, devolverá el resultado como "145647" ignorando todos los caracteres de espacio como se muestra en la imagen de abajo.

Ejemplo # 2

En este ejemplo, veremos cuál es el resultado de la cadena “+456”.

Código:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Convierta lo anterior como 456 MsgBox k End Sub 

Puede ejecutar este código manualmente o mediante la tecla F5 para devolver el valor como 456 ignorando +456.

Ejemplo # 3

Ahora intentemos con el mismo número con signo negativo.

Código:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Convierta lo anterior como -456 MsgBox k End Sub 

Este código devolverá el valor como -456 solo porque se debe mostrar el número con el signo del operador.

Ejemplo # 4

Ahora vamos a probar esta cuerda “100 Kg”.

Código:

 Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Ignora KG y devuelve solo 100 MsgBox k End Sub 

Si ejecuta este código manualmente o usando la tecla F5, este código anterior ignora "KG" y devuelve solo "100" en el cuadro de mensaje de VBA.

Ejemplo # 5

Ahora pruebe la cadena de fecha, es decir, "14-05-2018".

Código:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Devuelve 14 como resultado. MsgBox k End Sub

El código anterior devuelve 14 como resultado porque la función VAL solo puede obtener el valor numérico hasta que encuentre cualquier otro carácter que no sea numérico.

Ejemplo # 6

Ahora pruebe la cadena "7459Good456".

Código:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'Devuelve 7459 como resultado. MsgBox k End Sub

Esto extraerá los números hasta que encuentre el carácter no numérico, es decir, el resultado es 7459. Aunque hay valores numéricos después del valor no numérico "Bueno", ignora por completo los números posteriores.

Ejemplo # 7

Ahora pruebe con el valor de cadena "H 12456".

Código:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Devuelve 0 como resultado. MsgBox k End Sub

Ejecute el código anterior usando la tecla de método abreviado F5 o manualmente, luego devuelve el resultado como cero. Debido a que el primer carácter de la cadena que hemos proporcionado es un carácter no numérico, el resultado es cero.

Ejemplo # 8

Ahora pruebe esta cadena “24545. 2 ”.

Código:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Devuelve 24545,2 como resultado. MsgBox k End Sub

El código devuelve el resultado como 24545.2 porque la función VBA VAL considera el carácter punto (.) Como el carácter decimal y devuelve el resultado en consecuencia.