Macro para extraer números de una celda.
Algunas semanas atrás publiqué un artículo que utilizaba funciones para extraer
números de una celda en Excel. Sin embargo, dicho método tiene
ciertas restricciones como el hecho de extraer solo el primer bloque de números
encontrado en la cadena.
Hoy haremos una macro para extraer todos los números de una celda sin
importar su posición dentro de la cadena y para ello utilizaremos la función
IsNumeric la cual nos permite saber
si el carácter analizado es un valor numérico.
Función IsNumeric en VBA
La función IsNumeric tiene un
funcionamiento muy sencillo ya que tiene un solo argumento y que es el valor
que deseamos evaluar.
Como resultado obtendremos un
valor verdadero (TRUE) en caso de que el argumento sea un valor numérico y un
valor falso (FALSE) en caso contrario. Para nuestro ejemplo aplicaremos la
función IsNumeric a cada carácter contenido en la celda.
Recorrer la cadena de texto
Para analizar cada carácter en una cadena de texto será necesario
utilizar el bucle For Next y
colocar como límite el número de caracteres de la cadena que podemos obtener
fácilmente con la función Len.
La instrucción For Next realizará
tantos ciclos como números de caracteres haya en la cadena y en cada ciclo la
variable i aumentará de valor hasta alcanzar el número máximo de caracteres.
Ahora que ya sabemos cómo recorrer la cadena de texto debemos extraer
efectivamente cada uno de los caracteres utilizando la función Mid.
Función Mid en VBA.
La función Mid en VBA nos
permite extraer una subcadena indicando su posición de inicio y la longitud.
Esta función tiene 3 argumentos, el primero de ellos es la cadena original, el
segundo la posición donde iniciará la extracción y el tercer argumento es la
cantidad de caracteres a extraer.
Para nuestro ejemplo utilizaremos la función Mid para extraer un solo
carácter a la vez por lo que estará dentro de nuestro bucle For Next explicado
en la sección anterior. A continuación presento el código completo que nos
ayudará a extraer números de una celda en Excel utilizando
una macro.



No hay comentarios:
Publicar un comentario