excel split函数_Excel示例:拆分数据信息并填入相应单元格

原文链接:

No.18 Excel示例:拆分数据信息并填入相应单元格​mp.weixin.qq.com
3fce5d6fa3f430d5d77a7e9e57c9e402.png

要求的功能

这两天有位朋友问我,Excel表格里有一列数据,怎样把他们拆分,按照规定放到相应的单元格内,比如下面这个图:

f825014beb156c2aeb2f5fd97ab1b447.png

要求把表格中 I 列的数据都相应的放在下面的单元格内:

f3b806abf999cb9c8a495d0621911b75.png

下面我们就用这个例子给大家讲讲这种问题的解法。

思路

我们看下 I 列的数据,发现一个规律:都是按照 姓名,电话,地址,邮编,备注 这个顺序来排列,而且每一项都是用“,”相隔,所以要分别提取姓名,电话,地址,邮编,备注就不难了,用Split函数就可以方便的达到要求,我们之前讲"VB字符串函数"的时候没有讲Split函数,稍后大致讲一下。

这样的话,读取,拆分,然后把拆分后的数据填入相应单元格就行了。

"Split" 函数

Split函数是一个用于分割字符串的函数,它能以一个字符串内容中的指定分隔符,将这个字符串分割成若干个小字符串。

用法是:变量 = Split(字符串, 分隔符)

举个例子:s= Split("123/大大大/456",“/”)

这时候s就成了一个数组,以“/”为分隔符

s(0)="123"

s(1)="大大大"

s(2)="456"

上面的例子,我们把“,” 逗号当做分隔符,就很容易的把姓名电话等信息提取出来,是不是很容易理解?

代码

我们用这两天讲的知识,把这个功能定义一个Sub过程,就叫TiQu吧:

d4d296b5ad49cae25ed1bc1689333254.png

先把 I 列的第一行数据读出来,然后分析:

8641a358920371319d5767558308fdf0.png

效果:

2063a6aaec29a5a164388dc554447932.gif

成功,我们加上循环,读取 I 列的数据,然后拆分,填入,当 I 列有空行怎么办?我们可以加上 If 判断内容不为空再执行:

aa612dafb6a033d30bf1eb4c5e39afe9.png

我们来试一下:

c47c1741a50e8aa8205d64bc98ea34ae.png

嗯?有错误,提示下标越界,我们看提示,原来是"王五,1311111111,南京XXXX商贸,302012"这行没有备注信息,导致数组N(4)不存在,所以报错。当然了,没有备注也能寄件,所以,缺少也没有关系,这个错误我们可以不管,忽略就行,我们在开始加上“On Error Resume Next”,这就用到了昨天讲的知识。

我们再运行一下,这回不报错了,但是只有一列,我们看代码,原来循环时所有的数据都给第二列赋值,所以我们填单元格的时候也要用循环变量,这就产生了一个新的问题,我们怎么让程序知道从哪循环,写入哪行?这回又用到了我们之前学的Do……Loop循环了,我们可以定义一个变量,让程序检测这个变量上的行数是否有数据,如果有的话就让这个变量+1,直到检测到空行,我们再往这个行数的单元格写入数据:

1afdfea7a1f5b57f90ffab3f3e4c603f.png

我们再运行一下看看效果:

4b22df420eed2430baeba93f8a20c3e6.png

示例下载:

http://51vb.ys168.com/

我尽量把内容讲的通俗易懂,如果觉得还可以的话恳求大家右下角点个“在看”多帮忙转发,谢谢了~~

我若是有说错的地方,请各位指正,感激不尽!

▼往期精彩回顾▼

No.17 VB程序的错误处理方法

No.15 VB的Sub过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值