Excel VBA高级自定义字符串连接函数 仿Office365中Textjoin函数 合并字符

2019年7月16日15:56:57Excel VBA高级自定义字符串连接函数 仿Office365中Textjoin函数 合并字符已关闭评论 6,116 views
微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com

Excel的工作表函数做字符连接极不方便 就是vbajoin局限性也很大,这里我们自定义一个字符连接通用函数,可接受不同类型参数,单元格区域,数组以及单个参数可随意混合组合传入输出结果可跳过空值,可指定分隔符,在需要大量字符串连接的时候,可以方便的调用。 注意工作表中可以结合数组公式使用,可以有条件的返回需要的字符串

 代码如下:

本函数可接受数组参数,以及多种参数的组合,可实现上图多种高级字符串连接功能,完整视频讲解请看我的培训课程

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

 

 

表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页