分享

学习VBA,报表做到飞 第二章 数组 2.3 Split与Join

 拾叁亿人 2023-04-05 发布于云南

第二章 数组

2.3 Split与Join

把两个函数放在一个章节来学习,是因为两个函数的功能正好相反,Split函数是用分隔符拆分一个字符串生成一个一维数组,Join则是用分隔符把一个一维数组合并成一个字符串。一个拆家一个重建。我们先来看字符串的拆分:

1、字符串的拆分

Split(expression,[定界符,[limit,[compare]]]

Split的4个参数中,只有第一个参数是必选的,它代表需要拆分的字符串。

定界符:以什么分隔符为拆分依据,如果以空格为依据来拆分,可以省略此参数

Limit:要拆分成几个字符串

Compare:分隔符是否区分大小写,默认0 区分大小写,1 不区分大小写

例句:

a = '学习/VBA/报表/做到飞'

arr = Split(a, '/')

以'/'为分隔符,把字符串a进行拆分,拆分后的字符串放到数组arr里,它会生成一个从0开始的一维数组。

文章图片1

2、把数组合并成字符串

Join(数组,分隔符)

Join分隔符的使用与Split相同,省略时使用空格作分隔符。

例句:

把刚才生成的arr数组里的各个数据用分隔符'-'连接成一个字符串:

a = Join(arr, '-')

得到的结果是:

'学习-VBA-报表-做到飞'

文章图片2

值得注意的是,Split与Join只能对一维数组进行操作,如果是一行或一列单元格生成的二维数组怎么办呢?用神器“乾坤大挪移”Transpose啊!一列单元格生成的二维数组转换一次,一行单元格生成的二维数组转换两次,就得到一个一维数组了!就像下面这样:

arr = Application.Transpose(Range('b1:b5'))

一次转换搞定!

小程序:

把下面b1:b5单元格的每个数字都加1,然后显示到D列。

1-2-3

2-3-4

3-4-5

4-5-6

5-6-7

Sub Split与Join函数()

arr = Application.Transpose(Range('b1:b5'))

For i = LBound(arr) To UBound(arr)

brr = Split(arr(i), '-')

For j = LBound(brr) To UBound(brr)

brr(j) = brr(j) + 1

Next j

arr(i) = Join(brr, '-')

Next i

Range('d1').resize(UBound(arr), 1) = Application.Transpose(arr)

End Sub

先把'b1:b5'单元格的内容转换后生成一个一维数组arr,再用For循环语句依次读取arr数组里的每一个数据,以'-'为分隔符拆分成一个一维数组brr,再对brr数组里的数值分别加1,再以'-'为分隔符连接成一个字符串还给arr数组。运行过程如下图所示:

文章图片3

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多