Perhaps a UDF like this.
Function cocatinateWithDelimiter(delimiter As String, ParamArray subStrings() As Variant) As String
Dim xVal As Variant, oneCell As Range
For Each xVal In subStrings
Select Case TypeName(xVal)
Case "String", "Byte", "Integer", "Long", "Single", "Double"
cocatinateWithDelimiter = cocatinateWithDelimiter & delimiter & CStr(xVal)
Case "Range"
For Each oneCell In xVal
cocatinateWithDelimiter = cocatinateWithDelimiter & delimiter & CStr(oneCell.Value)
Next oneCell
End Select
Next xVal
cocatinateWithDelimiter = Mid(cocatinateWithDelimiter, Len(delimiter) + 1)
End Function