Skip to content

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