Excel VBA之函数篇-3.12区分订单号升级版,综合长度,起始字符判断

前景提要

上一节我们学习了如果通过订单号的结构来判断不同类型的订单号,不过后来我发现自己的考虑的并不够全面,案例中提供的几种订单号非常的普通,区分表示比较的明显,要么中文,要么英文,太容易区分了,在日常工作中,我们需要面对的场景可能更加的复杂,要求更加的高,要想让我们的代码有更加不错的通用性,需要继续深度挖掘这方面的场景,代码的使用效果更加的完善

所以今天小编也是决定更新一下我们的使用场景,不单单是通过简单的中英文数字的方式来区分,我们增加订单号的长度,比方说某些电商行业的公司,在淘宝有网上店铺,在京东有网上店铺,在苏宁有网上店铺,国美等等,不同的商城我们都知道订单号的组成是不同的,我们今天就模拟这样的场景,在上节的基础上,我们增加判断标识,订单的长度还有起始字符。

函数说明

说到长度,很多的人肯定会立马想到利用if判断语句,先通过len()来判断字符的长度,然后再通过字符串函数left(),right()等来判断字符的节奏,最后在综合我们上次学过的like()函数,就可以完成了,如果你真的这样写,我只能说。。。前面的基础掌握的挺牢固的,但是在本案例中,这并不是最简单的方法,其实用我们上节分享的like()函数就可以实现了,what?like()函数也可以判断长短,起始符?yes,来看看案例吧,这样更加的清楚明白。

上代码

根据上面我们模拟的场景,假设我们公司在不同的网上商城都有店铺,各个商城的订单号又不尽相同,所以我们构造了如下的订单号模式(假的!)

现在我们来操作

首先假如我们要找到京东商城的订单,要如何找呢?

分析

按照我们上节分享的思路,京东啊,开头是JD的就是京东商城的,那么我判断订单号中是否含有英文就可以了!不对,你看看下面,天猫商成也有英文,国美,苏宁都有,所以按照上节课的逻辑,很明显我们无法达到要求,那么怎么办呢?来,我们分析下,既然你前面已经发现了订单号开头是JD的就是京东商城的,而且其他的订单都没有JD开头的,那么我们判断订单号的开头不就可以了吗?

Sub test()Dim i&For i = 2 To 15 If Cells(i, "i") Like "JD*" Then Cells(i, "i").Offset(0, 1) = "京东商城" End IfNext iEnd Sub

代码很简单,

Cells(i, "i") Like "JD*"

就是判断单元格是否以JD开头的,注意后面有一个*号,不能遗漏了。这个很简单,就是判断字符串开头的方法

现在换个场景,假设我们要获得国美商城的订单,如何实现呢?

分析

国美商城的订单,都是GM开头的,我们可以直接利用上面刚刚学过的GM*的方式来判断开头就可以了,虽然方法没错,但是你要注意关注,天猫商城的订单也是已GM开头的,所以这里我们就不能通过判断开头的方式了,那么判断结尾呢?国美的结尾是GM,而天猫的就不是GM,那就可以实现了

Sub test()Dim i&For i = 2 To 15 '================判断结尾================= If Cells(i, "i") Like "*GM" Then Cells(i, "i").Offset(0, 1) = "国美商城" End If '================判断结尾=================Next iEnd Sub

看下结果,我们成功的将国美的订单区分出来了。

我们继续换个场景,假设我们找到苏宁商城的订单,我们通过开头为1,不行,因为内部单号的开头也是1,结尾为1,2,也不行,因为京东商城的订单结尾也有1,2的,那么怎么办呢?看看标题,我们还有一个长度没有说,没错,既然这里我们没有其他的更好的办法的话,就可以通过判断订单号的长度来区分是否是苏宁的订单,还可以区分长度?来,看代码

Sub test()Dim i&For i = 2 To 15 '================判断长度================= If Cells(i, "i") Like "???????" Then Cells(i, "i").Offset(0, 1) = "苏宁商城" End If '================判断长度=================Next iEnd Sub

效果如下:

这里你会注意到,我们输入了7个“?”这里的问好代表的就是一个字符,,总共有几位数就是几个字符,再like()函数中,?代表的就是占位符的意思,这样就好理解了。

完整代码



Sub test()
Dim i&For i = 2 To 15 '================判断结尾================= 'If Cells(i, "i") Like "JD*" Then ' Cells(i, "i").Offset(0, 1) = "京东商城" 'End If '================判断结尾================= '================判断结尾================= 'If Cells(i, "i") Like "*GM" Then ' Cells(i, "i").Offset(0, 1) = "国美商城" 'End If '================判断结尾================= '================判断长度================= If Cells(i, "i") Like "???????" Then Cells(i, "i").Offset(0, 1) = "苏宁商城" End If '================判断长度=================Next iEnd Sub

好了,明晚19:00,准时再见。

(0)

相关推荐