Excel VBA dividir cadena en matriz
Una cadena es una colección de caracteres unidos, cuando estos caracteres se dividen y almacenan en una variable, esa variable se convierte en una matriz para estos caracteres y el método que usamos para dividir una cadena y convertirla en una matriz es mediante la función SPLIT en vba que divide la cadena en una cadena unidimensional.
Al igual que las hojas de trabajo en VBA, también tenemos funciones para tratar con valores de cadena o texto. Estamos muy familiarizados con las operaciones de cadena como extraer el primer nombre, apellido, segundo nombre, etc. Pero, ¿qué tal la idea de dividir el valor de cadena en matrices en VBA? Sí, lo escuchó correctamente, podemos dividir la oración de cadena en una matriz utilizando la codificación VBA, y en este artículo especial, le mostraremos cómo dividir la cadena en una matriz en Excel VBA.

¿Qué es dividir cadena en una matriz?
Permítanme aclarar esto primero, "Cadena en matriz" no es más que "diferentes partes de la oración o cadena se dividirán en varias partes". Por ejemplo, si la oración es "Bangalore es la ciudad capital de Karnataka", entonces cada palabra es una matriz diferente.
Entonces, cómo dividir esta oración en la matriz es el tema de este artículo.
¿Cómo convertir una cadena dividida en una matriz en Excel VBA?
Para convertir la cadena dividida en una matriz en VBA, tenemos una función llamada "SPLIT". Esta es una función de VBA que realiza la tarea de dividir el valor de la cadena suministrada en diferentes partes según el delimitador proporcionado.
Por ejemplo, si la oración es "Bangalore es la ciudad capital de Karnataka", el espacio es el delimitador entre cada palabra.
A continuación se muestra la sintaxis de la función SPLIT.

- Valor o expresión: esta es la cadena o el valor de texto que estamos tratando de convertir en la matriz segregando cada parte de la cadena.
- (Delimitador): Esto no es más que las cosas comunes que separan cada palabra en la cadena. En nuestra oración "Bangalore es la ciudad capital de Karnataka", cada palabra está separada por un carácter de espacio, por lo que nuestro delimitador es el espacio aquí.
- (Límite): El límite no es más que la cantidad de piezas que queremos como resultado. Por ejemplo, en la oración "Bangalore es la ciudad capital de Karnataka", tenemos siete partes si solo necesitamos tres partes, entonces obtendremos la primera parte como "Bangalore", la segunda parte como "es" y la tercera parte como el resto de la oración es decir, "la ciudad capital de Karnataka".
- (Compare): Esto no se usa el 99% del tiempo, así que no toquemos esto en este momento.
Ejemplo 1
Ok, ahora veamos ejemplos prácticos.
Paso 1: Defina la variable VBA para contener el valor de la cadena.
Código:
Sub String_To_Array () Dim StringValue As String End Sub

Paso 2: para esta variable, asigne la cadena "Bangalore es la ciudad capital de Karnataka".
Código:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore es la capital de Karnatka" End Sub

Paso 3: A continuación, defina una variable más que pueda contener cada parte del valor de cadena anterior. Sobre esto, debemos tener en cuenta que, dado que la oración tiene más de una palabra, debemos definir la variable como "Array" para contener más de un valor.
En este caso, tenemos 7 palabras en la cadena, así que defina la matriz de la siguiente manera.
Código:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore es la ciudad capital de Karnatka" Dim SingleValue () As String End Sub

Ahora, para esta variable de matriz, usaremos la función SPLIT para dividir la cadena en una matriz en Excel VBA.
Código:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore es la ciudad capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

La expresión es nuestro valor de cadena, es decir, la variable ya contiene el valor de cadena, así que ingrese solo el nombre de la variable.

El delimitador en esta cadena es un carácter de espacio, así que proporcione el mismo.
Código:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore es la ciudad capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub
A partir de ahora, deje otras partes de la función SPLIT.
La función SPLIT divide el valor de la cadena en 7 partes, cada palabra separada a expensas del carácter de espacio. Dado que hemos declarado la variable “SingleValue” como matriz, podemos asignar los 7 valores a esta variable.
Podemos escribir el código de la siguiente manera.
Código:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore es la ciudad capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub
Ejecute el código y vea lo que obtenemos en el cuadro de mensaje.

A partir de ahora, podemos ver la primera palabra, es decir, "Bangalore", para mostrar más palabras, podemos escribir el código de la siguiente manera.
Código:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore es la ciudad capital de Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub
Now run the code and see what we get in the message box.

Each and every word has been split into arrays.
Example #2
Now imagine a situation of storing these values to cells i.e., each word into a separate cell. For this, we need to include the FOR NEXT loop in VBA.
The below code will insert each word into separate cells.
Sub String_To_Array1() Dim StringValue As String StringValue = "Bangalore is the capital city of Karnataka" Dim SingleValue() As String SingleValue = Split(StringValue, " ") Dim k As Integer For k = 1 To 7 Cells(1, k).Value = SingleValue(k - 1) Next k End Sub
This will insert each word, as shown in the below image.

Things to Remember
- Array and loops are used together to make the code dynamic.
- The SPLIT function requires common delimiter, which separates each word in the sentence.
- La longitud de la matriz comienza desde cero, no desde 1.