Tabla de contenido
En este artículo, te mostraré cómo puedes dividir una cadena en una matriz en VBA . Dividir es una de las funciones más importantes y utilizadas que empleamos en VBA Aprenderás a dividir una cadena en VBA de todas las formas posibles.
Función de división de VBA (Vista rápida)
=Split(Expression As String, [Delimiter], [Limit As Long=1], [CompareAsVbCompareMethod=vbBinaryCompare])
Descargar el cuaderno de prácticas
Dividir una cadena en una matriz.xlsm3 maneras de dividir una cadena en una matriz en VBA
Tengamos una cuerda en la mano "Solicitamos el visado de Estados Unidos, Canadá, Australia y Francia". .
Te mostraré cómo puedes dividir esta cadena en una matriz de todas las formas posibles utilizando la función Función de división de VBA .
1. Utilice cualquier delimitador para dividir una cadena en una matriz en VBA
Puede utilizar cualquier cadena como delimitador para dividir una cadena en una matriz en VBA .
Puede ser un espacio (" ") , a coma (",") , a punto y coma (":") un único carácter, una cadena de caracteres o cualquier cosa.
⧭ Ejemplo 1:
Vamos a dividir la cadena utilizando la función coma como delimitador.
La línea de código será:
Arr = Split(Texto, ",")
El completo Código VBA será:
⧭ Código VBA:
Sub Split_String() Text = "Solicitamos el visado de EE.UU., Canadá, Australia y Francia" Arr = Split(Text, ",") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Salida:
Dividirá la cadena en una matriz formada por {"Solicitamos el visado de EE.UU.", " Canadá", " Australia", " Francia"}.
⧭ Ejemplo 2:
También puede utilizar un espacio (" ") como delimitador.
La línea de código será:
Arr = Split(Texto, " ")
El completo Código VBA será:
⧭ Código VBA:
Sub Split_String() Text = "Solicitamos el visado de EE.UU., Canadá, Australia y Francia" Arr = Split(Text, " ") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Salida:
Dividirá la cadena en una matriz formada por {"Nosotros", "solicitamos", "para", "el", "visado", "de", "EE.UU.,", "Canadá,", "Australia,", "Francia,"}.
⧭ Cosas para recordar:
- El delimitador por defecto es espacio (" ") .
- Es decir, si no insertas ningún delimitador, utilizará un espacio como delimitador.
Más información: Dividir cadena por carácter en Excel (6 formas adecuadas)
Lecturas similares:
- Dividir texto en varias celdas en Excel
- VBA para obtener valores únicos de columna en matriz en Excel (3 Criterios)
- Excel VBA: Cómo Filtrar con Múltiples Criterios en una Matriz (7 Maneras)
2. Dividir una cadena en una matriz con cualquier número de elementos
Puede dividir una cadena en una matriz con el número de elementos que desee.
Introduzca el número de elementos como Tercero argumento del Función de división .
⧭ Por ejemplo:
Dividamos la cadena en la primera 3 artículos con un espacio como delimitador.
La línea de código será:
Arr = Split(Texto, " ", 3)
Y el Código VBA será:
⧭ Código VBA:
Sub Split_String() Text = "Solicitamos el visado de EE.UU., Canadá, Australia y Francia" Arr = Split(Text, " ", 3) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Salida:
Dividirá la cadena en una matriz formada por el primer 3 elementos separados por el delimitador espacio .
⧭ Cosas para recordar:
- El argumento por defecto es -1 .
- Es decir, si no introduces el argumento, dividirá la cadena en el máximo número de veces posible.
Más información: Cómo dividir una cadena por su longitud en Excel (8 maneras)
3. Utilizar Delimitadores Sensibles a Mayúsculas y Minúsculas para Dividir una Cadena en una Matriz en VBA
En Función de división le ofrece utilizar tanto un distingue entre mayúsculas y minúsculas y distingue entre mayúsculas y minúsculas delimitador.
Para un distingue entre mayúsculas y minúsculas introduzca el delimitador 4ª argumento como 1.
Y por un distingue entre mayúsculas y minúsculas introduzca el delimitador 4ª argumento como 0 .
⧭ Ejemplo 1: Delimitador sensible a mayúsculas y minúsculas
En la cadena dada, consideremos el texto "PARA" como delimitador y 2 como el número total de elementos de la matriz.
Ahora, para un distingue entre mayúsculas y minúsculas caso, la línea de código será:
Arr = Split(Texto, "PARA ", 3,1)
Y el completo Código VBA será:
⧭ Código VBA:
Sub Split_String() Text = "Solicitamos el visado de EE.UU., Canadá, Australia y Francia" Arr = Split(Text, "FOR", 2, 1) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Salida:
Como el delimitador es distingue entre mayúsculas y minúsculas aquí, el "PARA" funcionará como "para" y dividirá la cadena en una matriz de dos elementos.
⧭ Ejemplo 2: Delimitador sensible a mayúsculas y minúsculas
De nuevo, para un distingue entre mayúsculas y minúsculas caso, la línea de código será:
Arr = Split(Texto, "PARA ", 3,0)
Y el completo Código VBA será:
⧭ Código VBA:
Sub Split_String() Text = "Solicitamos el visado de EE.UU., Canadá, Australia y Francia" Arr = Split(Text, "FOR", 2, 0) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Salida:
Como el delimitador es distingue entre mayúsculas y minúsculas aquí, el "PARA" no como "para" y no dividirá la cadena en una matriz de dos elementos.
Más información: Excel VBA: Eliminar Duplicados de una Matriz (2 Ejemplos)
⧭ Cosas para recordar:
- El valor por defecto del argumento es 0 .
- Es decir, si no pones el valor del 4ª funcionará para un distingue entre mayúsculas y minúsculas partido.
Conclusión
Por lo tanto, utilizando estos métodos, puede utilizar el Función de división de VBA para dividir una cadena en una matriz de elementos. ¿Tienes alguna duda? No dudes en preguntarnos.