Excel VBA Concatenate

La concatenación se puede definir como unir o agregar dos cadenas o elementos de datos para obtener una sola cadena o elemento de datos que se llama concatenación. En palabras simples, si tenemos una lista de nombres en una columna y apellido en otra columna con la ayuda de la operación de concatenación, podemos combinar ambos y colocarlos en una sola celda en una fracción de segundos. En Excel, para lograr esta concatenación tenemos una función de hoja de trabajo llamada Concat (). Pero, este tipo de función no está disponible en VBA. No podemos usar concatenate () en la codificación VBA ya que no funcionará. Por lo tanto, no hay funciones disponibles en VBA y tampoco podemos acceder a las funciones de la hoja de trabajo, entonces cómo concatenaremos dos o más cadenas en VBA.

Primero, veremos cómo lo haremos con la función de hoja de trabajo, luego veremos lo mismo en VBA. Considere dos cadenas en Excel como se muestra en la siguiente captura de pantalla.

Ahora use la función concatenar para combinar ambas cadenas.

Observe la fórmula, D4 y E4 son la dirección de las celdas que queremos combinar. Como arriba, podemos concatenar múltiples números de cadenas de diferentes celdas.

¿Cómo utilizar Excel VBA Concatenate Function?

Aprenderemos cómo usar un VBA Concatenate con algunos ejemplos en Excel.

Puede descargar esta plantilla Excel de VBA Concatenate aquí - Plantilla Excel de VBA Concatenate

VBA Concatenate - Ejemplo # 1

Como no tenemos ninguna función incorporada en VBA, la concatenación en VBA se puede lograr utilizando el operador ampersand (&).

Tomaremos el mismo ejemplo que ya tomamos para la función de hoja de trabajo. Tenemos "I love" en la celda D4 e "India" en la celda E4. Ahora combinaremos esas dos cadenas en VBA. Vaya a la pestaña del editor VBA.

Paso 1: Vaya a la pestaña Desarrollador y luego seleccione la pestaña "visual básico" en el lado izquierdo. Luego lo llevará a la siguiente pantalla.

Paso 2: Primero, necesitamos crear un subproceso con cualquier nombre como concatenación . Para iniciar el subproceso, use la palabra clave Sub y nombre de proceso "concatenación".

Código:

 Sub Concatenate () End Sub 

Paso 3: en Subprocess necesitamos definir cadenas como string1, string2 y full_string usando la palabra clave dim.

Código:

 Sub Concatenate () Dim String1 Como String Dim String2 Como String Dim full_string Como String End Sub 

Paso 4: Ahora, debemos asignar la cadena "I love" a string1 e "India" a string2 usando el operador de asignación "=" como se muestra a continuación.

Código:

 Sub Concatenate () Dim String1 Como String Dim String2 Como String Dim full_string Como String String1 = "I Love" String2 = "India" End Sub 

Paso 5: Ahora, combine la cadena1 y la cadena2 con el operador ampersand y asigne esa combinación a full_string como se muestra a continuación. Mantenga un espacio entre las variables de cadena y el operador ampersand para evitar mensajes de error.

Código:

 Sub Concatenate () Dim String1 Como String Dim String2 Como String Dim full_string Como String String1 = "I Love" String2 = "India" full_string = String1 & String2 End Sub 

Paso 6: Ahora, la concatenación de string1 y string2 se almacena en full_string. Muestre esta cadena usando un cuadro de mensaje como se muestra a continuación.

Código:

 Sub Concatenate () Dim String1 Como String Dim String2 Como String Dim full_string Como String String1 = "I Love" String2 = "India" full_string = String1 & String2 MsgBox (full_string) End Sub 

Paso 7: Ahora, es hora de ejecutar el proceso. Haga clic en el botón de reproducción que está marcado con un cuadro de color rojo. El resultado aparecerá en el cuadro de mensaje como se muestra a continuación.

Paso 8: en el ejemplo anterior tomamos las dos cadenas directamente en el programa y no hay espacio entre la primera cadena y la segunda cadena. ¿Cómo agregar espacio entonces? Muy simple mientras concatena, concatena también el espacio.

Código:

 Sub Concatenate () Dim String1 Como String Dim String2 Como String Dim full_string Como String String1 = "I Love" String2 = "India" full_string = String1 & "" & String2 MsgBox (full_string) End Sub 

Paso 9: Observe la imagen de arriba, agregamos el espacio entre string1 y string2 con la ayuda de comillas dobles. En caso de que si queremos agregar '-' también podemos hacerlo.

Código:

 Sub Concatenate () Dim String1 Como String Dim String2 Como String Dim full_string Como String String1 = "I Love" String2 = "India" full_string = String1 & "-" & String2 MsgBox (full_string) End Sub 

Paso 10: El resultado será el siguiente.

VBA Concatenate - Ejemplo # 2

Paso 1: Ahora tomaremos los datos de la hoja de Excel y los concatenaremos y luego mostraremos los resultados. Para eso, asigne los datos en las celdas a string1 y string2 como se muestra a continuación.

Código:

 Sub Concatenate2 () Dim String1 Como String Dim String2 Como String Dim full_string Como String String1 = Celdas (4, 4) .Value String2 = Cells (4, 5) .Value MsgBox (full_string) End Sub 

Paso 2: Observe la imagen de arriba, asignamos el valor en las celdas (4, 4) a stirng1 y las celdas (4, 5) en la cadena2. Como de costumbre, concatene ambas cadenas con el operador ampersand.

Código:

 Sub Concatenate2 () Dim String1 Como String Dim String2 Como String Dim full_string Como String String1 = Celdas (4, 4) .Value String2 = Cells (4, 5) .Value full_string = String1 & "" & String2 MsgBox (full_string) End Sub 

Paso 3: Debido a esto, los datos en las celdas (4, 4) y Celdas (4, 5) se combinarán y almacenarán en full_string. Ahora ejecute el proceso haciendo clic en el símbolo de reproducción.

Paso 4: los datos se toman de Excel que se muestra a continuación.

Paso 5: si cambiamos los datos en Excel y volvemos a ejecutar, los resultados del programa cambiarán según los datos de Excel. En lugar de India, me cambié a dulces ahora correremos y comprobaremos.

Paso 6: Ahora el resultado llega en el cuadro de mensaje. En lugar de un cuadro de mensaje, si queremos sobresalir, podemos hacerlo.

Código:

 Sub Concatenate2 () Dim String1 como String Dim String2 como String Dim full_string como String String1 = Cells (4, 4) .Value String2 = Cells (4, 5) .Value Cells (4, 7) .Value = String1 & String2 MsgBox ( full_string) End Sub 

Paso 7: Asigne la concatenación en la celda de dirección de celda (4, 7) y elimine msgbox ya que ya no necesitamos un cuadro de mensaje. Presione el botón de reproducción y vaya a Excel y verifique que obtendrá el resultado en la celda (4, 7) (fila 4 y columna 7).

Paso 8: Como estamos agregando dos cadenas, podemos usar el símbolo "+" también como se muestra a continuación.

Código:

 Sub Concatenate2 () Dim String1 como String Dim String2 como String Dim full_string como String String1 = Cells (4, 4) .Value String2 = Cells (4, 5) .Value Cells (4, 7) .Value = String1 + String2 End Sub 

Paso 9: El resultado será el siguiente. No habrá diferencia

Paso 10: Pero si usamos números en lugar de cadenas para concatenar usando el símbolo "+", solo realizará la concatenación y no la suma porque tomamos el tipo de datos como una cadena, no como un entero.

Paso 11: El resultado será el siguiente.

En caso de que tomemos el tipo de datos como entero, entonces deberíamos usar un operador ampersand solo para la concatenación. Si usamos "+" mientras tomamos el tipo de datos enteros, entonces no se concatenará sino que se sumará.

VBA Concatenate - Ejemplo # 3

Paso 1: si queremos combinar una cadena y un número también podemos aplicar la misma técnica. Para eso, mantenga el valor de número en una celda y el valor de cadena en otra celda y haga clic en la opción de ejecución.

Paso 2: El resultado no tendrá un impacto, será el mismo resultado de cadena que antes con el único cambio es el número en lugar de una cadena.

Cosas para recordar

  • La concatenación es combinar las cadenas de dos o más cadenas múltiples de diferentes celdas. Para realizar esto en Excel, tenemos una función de hoja de trabajo incorporada que es CONCAT.
  • La función de hoja de trabajo concat no está accesible en VBA para concatenar.
  • La concatenación se logrará con la ayuda del operador ampersand (&) y plus (+). Si está tomando un tipo de datos entero, entonces el símbolo "+" realizará una operación de suma en lugar de concatenación, por lo tanto, asegúrese de eso.
  • Use el espacio antes y después de los símbolos & y +; de lo contrario, arrojará un mensaje de error.
  • Al definir variables de cadena, no mantenga ningún espacio en el nombre de una variable. Si se proporciona algún espacio en el nombre de la variable de cadena, no lo permitirá, ya que arrojará un mensaje de error como el siguiente.

Artículos recomendados

Esta es una guía de VBA Concatenate. Aquí discutimos cómo usar Excel VBA Concatenate Function junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA InStr explicado con ejemplos
  2. Tipo de datos enteros de VBA
  3. ¿Cómo seleccionar la celda usando el código VBA?
  4. Transponer un rango en VBA

Categoría: