由于excel自带的连接字符串函数CONCATENATE的局限性,无法用数组、范围单元格作为参数,无法自己加入分隔符,写了个更完善的自定义函数STRLINK来实现上述问题:
Function STRLINK(seperator As String, ParamArray str() As Variant)
Dim elm As Variant, elm2 As Variant
For Each elm In str
Select Case VarType(elm)
Case vbVariant + vbArray
For Each elm2 In elm
If elm2 <> "" Then
STRLINK = STRLINK & elm2 & seperator
End If
Next
Case Else
If elm <> "" Then
STRLINK = STRLINK & elm & seperator
End If
End Select
Next
If Len(STRLINK) > 0 Then
STRLINK = Left(STRLINK, Len(STRLINK) - 1)
End If
End Function
由分隔符和可变数量的参数组成,可变参数支持绝大部分格式,包含CONCATENATE不支持的数组、range类型等。