学习VBA,报表做到飞第二章数组2。3Split与Join
第二章数组
2。3Split与Join
把两个函数放在一个章节来学习,是因为两个函数的功能正好相反,Split函数是用分隔符拆分一个字符串生成一个一维数组,Join则是用分隔符把一个一维数组合并成一个字符串。一个拆家一个重建。我们先来看字符串的拆分:
1、字符串的拆分
Split(expression,〔定界符,〔limit,〔compare〕〕〕
Split的4个参数中,只有第一个参数是必选的,它代表需要拆分的字符串。
定界符:以什么分隔符为拆分依据,如果以空格为依据来拆分,可以省略此参数
Limit:要拆分成几个字符串
Compare:分隔符是否区分大小写,默认0区分大小写,1不区分大小写
例句:
a学习VBA报表做到飞
arrSplit(a,)
以为分隔符,把字符串a进行拆分,拆分后的字符串放到数组arr里,它会生成一个从0开始的一维数组。
2、把数组合并成字符串
Join(数组,分隔符)
Join分隔符的使用与Split相同,省略时使用空格作分隔符。
例句:
把刚才生成的arr数组里的各个数据用分隔符连接成一个字符串:
aJoin(arr,)
得到的结果是:
学习VBA报表做到飞
值得注意的是,Split与Join只能对一维数组进行操作,如果是一行或一列单元格生成的二维数组怎么办呢?用神器乾坤大挪移Transpose啊!一列单元格生成的二维数组转换一次,一行单元格生成的二维数组转换两次,就得到一个一维数组了!就像下面这样:
arrApplication。Transpose(Range(b1:b5))
一次转换搞定!
小程序:
把下面b1:b5单元格的每个数字都加1,然后显示到D列。
123
234
345
456
567
SubSplit与Join函数()
arrApplication。Transpose(Range(b1:b5))
ForiLBound(arr)ToUBound(arr)
brrSplit(arr(i),)
ForjLBound(brr)ToUBound(brr)
brr(j)brr(j)1
Nextj
arr(i)Join(brr,)
Nexti
Range(d1)。resize(UBound(arr),1)Application。Transpose(arr)
EndSub
先把b1:b5单元格的内容转换后生成一个一维数组arr,再用For循环语句依次读取arr数组里的每一个数据,以为分隔符拆分成一个一维数组brr,再对brr数组里的数值分别加1,再以为分隔符连接成一个字符串还给arr数组。运行过程如下图所示:
往期精彩回顾:
学习VBA,报表做到飞第二章数组2。2数组的上界与下界
学习VBA,报表做到飞第二章数组2。1数组的声明、赋值及读取
学习VBA,报表做到飞第一章入门篇1。27过程与函数
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!