30 septiembre, 2023

PASAR UNA CADENA DE TEXTO A UNA MATRIZ Y UTILIZARLO EN UN BUCLE

Hola a todos!

Hoy voy a tratar un tema concreto a nivel programación, un pequeño «tip» de una forma o método para realizar la siguiente tarea: pasar una cadena de texto a un array o matriz y a su vez, poder utilizarla en un bucle (en este caso usaré «for each»).

Voy a realizar un ejemplo sencillo con el que podréis entenderlo perfectamente. Este trabajo también se podría realizar con otras técnicas, pero hoy quiero centrarme en esta.

Veamos, imaginad que tenemos en una columna una serie de números:

PASAR UNA CADENA DE TEXTO A UN ARRAY Y UTILIZARLO EN UN BUCLE

Para poder pasar esta serie de números a una cadena de texto, tenemos que componerla y lo podemos hacer con un ciclo for – next:

Así:

With Sheets("Hoja1")
Fin = Application.CountA(.Range("A:A"))
For i = 2 To Fin
mStr = mStr & "|" & .Cells(i, 1)
Next i
End with
End sub

Utilizaremos la barra «|» como separador en nuestra cadena.

El resultado es el siguiente:

|371|282|404|881|804|812|742|833|242|294|931|725|942|909|103|519|380|190|42|892|764|333|352|18|887|889|319

Y como podéis observar, nos ha quedado una barra al inicio de la cadena que es necesario eliminar, para ellos debemos hacerlo con las siguientes funciones:

mStr = Mid(mStr, 2, Len(mStr))

Una vez que tenemos nuestra string o cadena de texto depurada, ya podemos dar el siguiente paso, crear una matriz con cada una de sus subcadenas. Utilizaremos la función «Split»:

mtrz = Split(mStr, "|")

Y ahora que tenemos toda la información, ya podemos utilizar la matriz en nuestro loop o bucle:

For Each numero In mtrz
.Cells(2, 3) = "RESULTADO: " & numero & "*2= " & numero * 2º1
Application.Wait (Now + TimeValue("00:00:01"))
Next numero

Donde «numero» se corresponde con cada subcadena de nuestra matriz, que en este caso es un número.

En el loop simplemente multiplico por 2 cada número y lo muestro en la hoja1 con un «retardo en la ejecución de cada multiplicación de 1 segundo».

Y resulta esto:

PASAR UNA CADENA DE TEXTO A UN ARRAY Y UTILIZARLO EN UN BUCLE1

Sin embargo, el motivo de este post es mostrar una forma o método para crear una matriz a partir de un string y poder utilizarlo en un bucle.

Aunque este ejemplo es muy sencillo y se podría realizar lo mismo con un simple bucle for next, no os quedéis con esa idea, sino con que este  método os puede resultar muy útil para otros procedimientos más complejos.

Descarga el archivo de ejemplo pulsando en: PASAR UNA CADENA DE TEXTO A UNA MATRIZ Y UTILIZARLO EN UN BUCLE

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies