Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Funcion SPLIT EXTRAER NUMEROS de un CADENA TEXTO Excel VBA #528

funcion split separar cadenas de texto

Como Separar Cadenas de Texto con la Función Split

En este post se muestra como separar una cadena de texto o String en cadena de caracteres más pequeñas, teniendo en cuenta un separador o indicador común para separar las cadenas de caracteres, la macro de Excel VBA analiza la cadena de caracteres pudiendo extraer número o texto.

Requieres aprender a manejar Excel, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

  
 

Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

FUNCION SPLIT – forma de extraer número o texto de una cadena de caracteres mayor

En el ejemplo se muestra como se puede separar la cadena de texto que se encuentra en la columna D del ejemplo en cadenas de texto más pequeñas, en este caso se va a separar todos los datos delimitados por la barra vertical o «pipe».

La macro recorrerá fila por fila extrayendo los números de la cadena, que están separados por pipe y los va a colocara en la columna A, B y C.

Explicación del código de la función split para separar o extraer registros de una cadena de texto

La macro se declara una variable de tipo array o matriz que es donde se guardarán todos los datos obtenidos para luego grabarlos en la hoja de Excel, de la siguiente forma:

Dim cade() As String

El código de la macro de Excel, en segundo lugar establece cual es la última fila con datos para realizar un bucle entre la primer y última fila con datos, lo hace con el siguiente código:

uf = d.Range(«D» & Rows.Count).End(xlUp).Row

Posteriormente se realiza un bucle entre la primer y última fila con datos, recorriendo todas las filas de la columna «D», que es donde está la cadena de caracteres a analizar, se usa el siguiente código:

For x = 2 To uf
….. mi código
Next x

Luego se carga en la variable «Tex» cual es el texto de la celda que recorre en cada momento el bucle, así:

Tex = d.Cells(x, 4)

Posteriormente en la matriz o array se guardan los datos extraídos o cadenas separadas cuyo delimitador o separador de datos es «pipe», de la siguiente forma:
cade() = Split(Tex, «|»)

Por último se recorre cada uno de los datos de la matriz obtenida y contenida en la variable «cade», escribiendo en cada celda de las columnas A, B y C, los datos correspondientes que acaban de ser obtenidos, se usan los siguientes códigos:


For i = LBound(cade) To UBound(cade) ‘elemento cadena datos
d.Cells(filac, col) = CLng(cade(i))
col = col + 1
Next i


Descarga el Libro Como usar la Función Split

Descarga el libro usado en este ejemplo desde el final del post puedes hacerlo gratis y usarlo sin ninguna restricción, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Código del para extraer datos de una cadena de caracteres con función Split

Código que se ingresa en un módulo de VBA

Sub extraecaracteres()
‘*********** by marcrodos **** https://macrosenexcel.com *** https://www.youtube.com/c/programarexcel?sub_confirmation=1 ********
Application.ScreenUpdating = False
Dim cade() As String
‘split del rango de datos a eliminar
filac = 2
col = 1
Set d = Sheets(«Hoja1»)
uf = d.Range(«D» & Rows.Count).End(xlUp).Row
For x = 2 To uf
Tex = d.Cells(x, 4)
cade() = Split(Tex, «|»)
For i = LBound(cade) To UBound(cade) ‘elemento cadena datos
d.Cells(filac, col) = CLng(cade(i))
col = col + 1
Next i
filac = filac + 1
col = 1
Next x
MsgBox («Los datos se extrajeron con éxito»), vbInformation, «https://macrosenexcel.com»
Application.ScreenUpdating = True
End Sub

Sub Borra()
Set d = Sheets(«Hoja1»)
uf = d.Range(«D» & Rows.Count).End(xlUp).Row
d.Range(«A2:C» & uf).Clear
End Sub


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
5 based on 1 votes