Tengo un error en argumento de función VBA

Estimado experto(a):
Estaba buscando código VBA para crear una función que me permita concatenar textos en una columna. Por ejemplo ingresé en A1:"Jorge", en A2:"Manuel", en A3:"Felipe", etc.
Hallé la siguiente función:
Public Function Concat1(Rango As Range, ByVal Sep As String) As String    
Dim Datos As Variant
Datos = Rango.Value    
If UBound(Datos, 1) > 1 Then  
Concat1 = VBA.Join(Application.Transpose(Datos), Sep)   
Else        Concat1 = VBA.Join(Application.Index(Datos, 1, 0), Sep)   
End If   
End Function
Cuando llamo a esta función desde Excel con el rango fijo (por ejemplo asignando a la celda B2 la siguiente función =Concat1(A1:A3,", ") el resultado es correcto:
en B2 queda: "Jorge, Manuel, Felipe"
El problema es cuando quiero que el rango de la columna A sea dinámico, es decir pueda agregar más nombres en la columna A y la función los concatene automáticamente, entonces, en B2 asigno la función de la siguiente manera:
=Concat1(INDIRECTO("$A$1:"&"$A$"&CONTARA($A:$A)))
y esto me arroja el error: #VALOR!
Agradecería enormemente si me pudiesen orientar en que parte falla la función o que cambios se podrían hacer para que acepte el argumento INDIRECTO.
Nota: He encontrado otros códigos que concatenan y me permiten incluir INDIRECTO como argumento, pero este código contiene la función nativa de VBA Join y la rapidez de éste cuando hay cientos o miles de filas para concatenar intuyo que debiese ser mejor.
De antemano,
muchas gracias.

Añade tu respuesta

Haz clic para o