Function JoinTextUnique(ByVal Sep As String, ByVal IgnoreBlanks As Boolean, ParamArray sArray()) As String
Dim tmpArr, SubArr, Arr(), Item, tmp As String
Dim Dic As Object
On Error Resume Next
Set Dic = CreateObject("Scripting.Dictionary")
For Each SubArr In sArray
tmpArr = IIf(IsArray(SubArr), SubArr, Array(SubArr))
For Each Item In tmpArr
tmp = IIf(TypeName(Item) = "Error", "", Trim(CStr(Item)))
If IgnoreBlanks = False Or Len(tmp) Then
If Not Dic.Exists(tmp) Then Dic.Add tmp, ""
End If
Next
Next
If Dic.Count Then JoinTextUnique = Join(Dic.Keys, Sep)
End Function