¿cómo utilizar vba para concatenar cadenas?
Para concatenar dos cadenas usando código VBA, debe usar el signo comercial. Puede utilizar un signo comercial entre dos cadenas para combinarlas y luego asignar este nuevo valor a una celda, variable o cuadro de mensaje. De manera similar, también puedes concatenar más de dos valores.
Más adelante veremos un ejemplo sencillo para entenderlo.
Pasos para usar VBA para concatenar
- Primero ingrese la primera cadena usando comillas dobles.
- Después de eso, escriba un signo comercial.
- A continuación, ingrese el segundo texto usando comillas dobles.
- Al final, asigne este valor a una celda o variable, o use un cuadro de mensaje para verlo.
Sub vba_concatenate() Range("A1") = "Mike" & "Ross" End Sub
Concatenar con un delimitador
También puedes usar un delimitador entre dos cadenas simplemente agregando un tercer signo. Considere el siguiente código.
Range("A1") = "Mike" & "-" & "Ross"
En el código anterior, usó un delimitador en dos cadenas y las unió usando solo símbolos. Básicamente, siempre que necesites encerrar algo, debes usar un signo comercial dentro de él.
Concatenar usando variables
También puedes almacenar valores en variables y luego concatenar los valores de estas dos variables. Considere el siguiente código.
En el código anterior tienes variables declaradas como variables y luego has asignado valores a estas variables. Y al final, usamos un signo comercial para combinar las tres variables y luego asignamos el resultado a la celda A1.
Concatenar un rango usando VBA
También puedes concatenar valores de un rango de celdas usando VBA. Considere la siguiente macro.
Sub vba_concatenate() Dim rng As Range Dim i As String Dim SourceRange As Range Set SourceRange = Range("A1:A10") For Each rng In SourceRange i = i & rng & " " Next rng Range("B1").Value = Trim(i) End Sub
En el código anterior, utilizó FOR NEXT (For Loops) para recorrer el rango que desea concatenar.
Entonces va a cada celda en el rango (A1:A10), almacena ese valor en la variable I y usa un signo comercial para concatenar un valor en cada iteración. Al final, configure el canal combinado en el rango B1.
Y el siguiente código concatena los valores del rango seleccionado. Todo lo que necesitas hacer es seleccionar un rango y luego ejecutar el código.
Dim rng As Range Dim i As String For Each rng In Selection i = i & rng & " " Next rng Range("B1").Value = Trim(i)
Concatenar una columna o fila completa
Si desea concatenar una columna o fila completa, en ese caso es mejor no utilizar el método de bucle. Puede utilizar la función de hoja de trabajo «TextJoin» que puede unir una fila o columna completa (considere el siguiente código).
'join values from column A. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("A:A")) 'join values from row 1. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("1:1"))