Separar frases con espacios utilizando un Array y Función Split en VBA

Esta macro es un ejemplo útil para ver cómo funciona un ARRAY (grupo de variables) en VBAExcel, en este caso lo utilizaremos para almacenar por separado cada una de las palabras de una frase en una celda.

Por ejemplo la celda A1 contiene la frase PEDIDO NÚMERO 15010, y necesitamos separarlo en tres celdas, con las palabras separadas por espacios. Podemos usar un ARRAY consplit-arrayvba1 la función Split(separa palabras).

 

 

 

 

 

palarray() = Split(textostring)

Este código lo que hace es crear tres variables:

palarray(1) = PEDIDO

palarray(2) = NÚMERO

palarray(3) = 15010

Ahora sólo necesitamos crear un bucle que se repita tantas veces como palabras tenga la frase.

Para eso utilizamos un For I con LBound y UBound, en este ejemplo va a repetirse 3 veces (tres palabras) y las va a ir mostrando desde las celdas A2 hacia la derecha, para eso usamos la propiedad Offset que va desplazando hacia la derecha las cedas.

Observa como el array palarray(I) según va recorriendo el bucle va mostrando cada una de las palabras

con palarray(1),palarray(2),palarray(3)

For I = LBound(palarray) To UBound(palarray)

           Cells(J + 1, 1).Offset(0, I).Value = palarray(I)

Next I

El resultado quedará como la siguiente imagen.

split-arrayvba2

Puedes ejecutar desde el editor de VB esta macro con la opción F8 (paso a paso) para ver cómo va

trabajando el código .

Puedes utilizar este código para el ejemplo.

Sub ejemplosplit2()

‘Esta macro desde la celda A1 separa los datos con el texto donde haya una espacio

‘Definimos las variables

   Dim palarray() As String

   Dim textostring As String

   Dim separado As String

   Dim J As Integer

   Dim I As Integer

   Dim vfila As Integer

‘Obtenemos la última fila rellena

   Range(“A1”).Select

   Selection.End(xlDown).Select

   vfila = ActiveCell.Row

    For J = 0 To vfila

       ‘Almacenamos los datos en la variable textostring con la palabra

         textostring = Range(“a1”).Offset(J, 0).Value

       ‘ Esta variable es un Array que almacenará cada una de las palabras de la

       ‘ frase que estén separadas por espacio, de esto se encarga la función Split()

          palarray() = Split(textostring)

          For I = LBound(palarray) To UBound(palarray)

           ‘Este bucle va rellenado las celdas hacia la derecha con las palabras

           Cells(J + 1, 1).Offset(0, I).Value = palarray(I)

          Next I

    Next J

End Sub

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s