打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
简单实用的自定义函数,秒杀数据合并与拆分
希望能在需要的时候助你一臂之力!
[注]:此代码需要放在标准模块里。

合并文本的函数:

代码解析:
'↓合并字符串
'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




分割字符串:

代码解析:

'↓分割字符串
'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



优化技巧(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
   

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

图文制作:赵中山
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA数组(一)
VBA进阶|利用VBA数组管理数据清单和表格
在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法
VBA中的:常量、变量和数组
学习VBA,报表做到飞 第二章 数组 2.3 Split与Join
怎么从一串文本中提取出想要的部分?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服