Código:
Sub ConcatConMacro()
Call Concatenar_Formula(True, True)
End Sub
Sub Concatenar_Formula(bConcat As Boolean, bOptions As Boolean)
Dim rSelected As Range
Dim c As Range
Dim sArgs As String
Dim bCol As Boolean
Dim bRow As Boolean
Dim sArgSep As String
Dim sSeparator As String
Dim rOutput As Range
Dim vbAnswer As VbMsgBoxResult
Dim lTrim As Long
Dim sTitle As String
Set rOutput = ActiveCell
bCol = False
bRow = False
sSeparator = ""
sTitle = IIf(bConcat, "Concatenar", "")
On Error Resume Next
Set rSelected = Application.InputBox(Prompt:= _
"Seleccionar celdas", _
Title:=sTitle & " celdas", Type:=8)
On Error GoTo 0
If Not rSelected Is Nothing Then
sArgSep = IIf(bConcat, ",", "&")
If bOptions Then
sSeparator = Application.InputBox(Prompt:= _
"Definir delimitador, dejar en blanco para omitir.", _
Title:=sTitle & " celdas", Type:=2)
End If
For Each c In rSelected.Cells
sArgs = sArgs & c.Address(bRow, bCol) & sArgSep
If sSeparator <> "" Then
sArgs = sArgs & Chr(34) & sSeparator & Chr(34) & sArgSep
End If
Next
lTrim = IIf(sSeparator <> "", 4 + Len(sSeparator), 1)
sArgs = Left(sArgs, Len(sArgs) - lTrim)
If bConcat Then
rOutput.Formula = "=CONCAT(" & sArgs & ")"
Else
rOutput.Formula = "=" & sArgs
End If
End If
End Sub
En este Código, utilizamos la función CONCAT para su resolución, si deseamos utilizar la función CONCATENAR debemos reemplazar CONCAT que aparece en las últimas líneas del código por CONCATENATE (función en inglés).
⭐ Si te gustó, por favor regístrate en nuestra Lista de correo y Suscríbete a mi canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.