¿Para qué sirve la función Split String?
La función Split puede dividir o desplegar un texto o expresión (String) entre sus partes o sus componentes utilizando un carácter delimitador.
Formato
Split (texto_a_dividir, delimitador, límite, comparar)
Parámetros
a) texto_a_dividir: Es el primer parámetro [obligatorio] de la función en el cual se coloca la oración que se quiere dividir
b) delimitador: Es el segundo parámetro [opcional] que se refiere al carácter delimitador con el cual se van a separar las palabras de la oración. Si no se coloca, se toma por descarte el “ “ (espacio) como separador.
c) límite: Es el tercer parámetro [opcional] que define el número máximo de palabras (o partes) que la oración será dividida. El valor que toma por descarte es el -1, lo que significa que la oración será dividida cuantas veces aparezca el delimitador.
d) comparar: Es el cuarto parámetro [opcional] que se refiere al método de comparación para usar en la evaluación de las oraciones. Puede tener cualquiera de estos dos valores:
Constante |
Valor |
Descripción |
CompareMethod.Binary |
0 |
Corresponde a una comparación binaria donde cada carácter deberá corroborarse consigo mismo |
CompareMethod.Text |
1 |
Corresponde a una comparación textual |
Algunas consideraciones importantes
- La función de Split devuelve un String Array y no un String
- Si omites el argumento de “comparar” entonces la expresión Split usa un método de comparación binaria por descarte.
- Si el “texto_a_dividir” que pasas a dividir no tiene longitud, entonces retorna un único elemento conteniendo una frase sin longitud.
- Si el “delimitador” no se encuentra dentro del “texto_a_dividir” entonces la función retorna un único elemento conteniendo solo el “texto_a_dividir” como es.
Ejemplos de aplicación en Macros (VBA)
1. General
Sub test()
Dim WrArray () As String
WedArray() = Split ("Primera prueba de Split")
End Sub
En este código, como no se especifica el delimitador, la función separará la expresión cada vez que se presente un ""(espacio).
Ejemplo 1.
Sub ejemplo1()
Dim WrdArray() As String
Dim expresion As String
expresion = "A|B|C"
WrdSrray() = Split (expresion,"|")
Ejemplo 2
Separar la expresión “Bienvenido al curso de Excel” en las palabras que lo componen utilizando la función de Split, y mostrar el resultado en una ventana de mensaje (MsgBox).
Sub ejemplo2()
Dim WrdArray() As String
Dim expresion As String
expresion = "Bienvenido al curso de Excel"
WrdArray() = Split(expresion)
For i = LBound(WrdArray) To UBound(WrdArray)
strg = strg & vbNewLine & "Palabra Nro. " & i + 1 & " - " & WrdArray(i)
Next i
MsgBox strg
End Sub
Ejemplo 3.
Utilizar la función de String para extraer solo la tercera palabra de la expresión “Bienvenido al curso de Excel”
Sub ejemplo3()
Dim tercerap As String
Dim expresion As String
expresion = "Bienvenido al curso de Excel"
tercerap = Split(expresion)(2)
MsgBox "La tercera palabra es: " & tercerap
End Sub
Ejemplo 4.
Utilizando el parámetro de "límite".
Sub ejemplo4()
Dim WrdArray() As String
Dim expresion As String
expresion = "Bienvenido al curso de Excel"
WrdArray() = Split(expresion, , 3)
For i = LBound(WrdArray) To UBound(WrdArray)
strg = strg & vbNewLine & "Parte No. " & i + 1 & " - " & WrdArray(i)
Next i
MsgBox strg
End Sub
Ejemplo 5.
Contar el número de palabras que se extraen.
Sub Contar_Palabras()
Dim WrdArray() As String
Dim expresion As String
expresion = "Bienvenido al curso de Excel"
WrdArray() = Split(expresion)
MsgBox ("Cantidad de palabras en la expresión: " & UBound(WrdArray()) + 1)
End Sub
17/10/2019 a las 4:49 pm
HOLA
Donde puedo comprar el libro completo? soy de buenos aires Argentina
05/08/2020 a las 4:30 am
¿Y si deseo separar una unica palabra en las letras que la componen y escribirlas en celdas separadas de un array?
10/01/2021 a las 9:57 pm
Para la cadena de entrada: "" ......me sale este mensaje al momento de subir mi macro que puedo hacer?
09/10/2021 a las 3:36 pm
para separar en letras en varios textbox?
09/10/2021 a las 3:37 pm
para separar una palabra en letras, que cada letra este en un textbox?