微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
Excel的工作表函数做字符连接极不方便 就是vba的join局限性也很大,这里我们自定义一个字符连接通用函数,可接受不同类型参数,单元格区域,数组以及单个参数可随意混合组合传入输出结果可跳过空值,可指定分隔符,在需要大量字符串连接的时候,可以方便的调用。 注意工作表中可以结合数组公式使用,可以有条件的返回需要的字符串

代码如下:
本函数可接受数组参数,以及多种参数的组合,可实现上图多种高级字符串连接功能,完整视频讲解请看我的培训课程
Excel VBA常用代码175个实例解析 全程手写代码教学 Excel880出品
http://excel880.com/dwz/3
Function textjoin(spstr, ParamArray params())
Dim s As String
Dim e, r
For Each e In params '主要学习如何使用参数数组,让函数具备接受不定个数和类型的参数
' Debug.Print TypeName(e)
Select Case Right(TypeName(e), 2) '用Typename得到参数类型,根据不同类型做出不同的处理
Case "ge", "()"
For Each r In e 'range和arrary() 判断出是单元格区域或者数组类型 则直接遍历
If r <> "" Then s = s & spstr & r
Next
Case Else '其他类型直接用字符串连接
If e <> "" Then s = s & spstr & e
End Select
Next
textjoin = Mid(s, Len(spstr) + 1)
End Function
Private Sub Test()
Dim i&, j&, k&, brr
Dim arr(2 To 4) As String
arr(2) = "a"
arr(3) = "b"
Debug.Print textjoin(" ", arr, [C6:C7], "abc")
End Sub




