Function ConcatList(ByVal V As Variant, Optional ByVal Separator As String = ", ") As String
Dim R As Long, C As Long, ItsNotTheFirstValue As Boolean
If TypeName(V) = "Range" Then V = V.Value
For R = 1 To UBound(V, 1): For C = 1 To UBound(V, 2)
If V(R, C) <> "" Then
If ItsNotTheFirstValue Then ConcatList = ConcatList & Separator Else ItsNotTheFirstValue = True
ConcatList = ConcatList & V(R, C)
End If
Next C: Next R
End Function