天天看点

mysql 横向合并结果_简单实用的自定义函数,秒杀数据合并与拆分

分享一个自定义函数,虽然3句代码,但很方便! 希望能在需要的时候助你一臂之力! [注]:此代码需要放在标准模块里。 合并文本的函数:

mysql 横向合并结果_简单实用的自定义函数,秒杀数据合并与拆分

代码解析:

'↓合并字符串 'Rng:单元格区域 ,JoinStr:用什么符号连接文本 'WorksheetFunction.Transpose 工作表函数 将二维数组转一维 'VBA.Join 用于合并字符串(合并的一维数组,用什么连接) 'FunJoin 函数名 = 结果 【必须】 Function FunJoin(Rng As Range, JoinStr As String) Dim Arr     Arr = WorksheetFunction.Transpose(Rng)     '↓VBA.Join 可以理解为 将一维数组的内容连接起来     'arr 要连接的一维数组     'JoinStr 用什么字符来连接     FunJoin = VBA.Join(Arr, JoinStr) End Function

分割字符串:

mysql 横向合并结果_简单实用的自定义函数,秒杀数据合并与拆分

代码解析:

'↓分割字符串 'Rng 要分割单元格 选择单元格要绝对引用 'Rng2 要填充的单元格 取该单元格的行 有用处 'SplitStr 以什么字符分割 'vba.Split 字符串分割(要分割的字符串,以什么字符分割)返回一维数组 'FunSplit 函数名=结果                              Function FunSplit(Rng As Range, Rng2 As Range, _     SplitStr As String)     Dim Arr     '↓字符串分割返回一维数组     ’rng :绝对引用的单元格     ' Splist 以什么字符分割 如、     Arr = VBA.Split(Rng, SplitStr)          '↓返回arr一维数组中的第几个     '这里用分割单元格的下一行 减去 要分割的单元格(绝对引用)的行     '向下填充依次是 0 1 2 3  ……     FunSplit = Arr(Rng2.Row - Rng.Row)'纵向填充          'FunSplit = Arr(Rng2.Column - Rng.Column) '横向填充 End Function

优化技巧(1): 灵活运用,横向填充:

Function FunSplit(Rng As Range, Rng2 As Range,  _     SplitStr As String)     Dim Arr        Arr = VBA.Split(Rng, SplitStr)      '↓横向填充     FunSplit = Arr(Rng2.Column - Rng.Column) End Function
mysql 横向合并结果_简单实用的自定义函数,秒杀数据合并与拆分

优化技巧(2): 灵活运用,横纵填充: 代码解析:

Function FunSplit(Rng As Range, Rng2 As Range,  _     SplitStr As String)     Dim Arr        Arr = VBA.Split(Rng, SplitStr)     If Rng.Row = Rng2.Row Then'          '↓横向填充         FunSplit = Arr(Rng2.Column - Rng.Column)      Else         FunSplit = Arr(Rng2.Row - Rng.Row)'纵向填充     End If  End Function
mysql 横向合并结果_简单实用的自定义函数,秒杀数据合并与拆分

     '工作表函数(也可以理解为vba版的Excel函数)与vba代码有机结合,也许会更方便。     '[合并|分割]文本的方法很多,可以用Excel自带函数完成(可能会很复杂)、也可以用Word文档替换段落标记完成(相对简单)。 图文制作:赵中山