来源于公众号:Excel和VBA
前景提要
通过了之前的学习,我们现在现在已经了解了like()的比较常用的两个用法,一种是判断字符组成,一种是通过起始符和长度来判断,在日常的工作中,如果能够熟练的掌握上面的两种方法的话,一些常用的场景,应该都能够通过VBA进行区分了,不过上述两种方法,并不是like()函数的所有的使用方法,他还有其他的一些比较实用的方法,今天我们来说下通过结构中是否包含某个元素来进行区分。
函数说明
这里说的是否含有某种元素的说法,并不恰当,准确是应该是说是否含有字符或者是字符串,比方说我们上节分享的案例中,京东商城的订单都是JD开头的,当时我们是通过判断字符串的开头是否含有JD来实现区分的,其实我们也可以通过判断字符串中是否含有JD来进行区分,这样更加的通用一些,因为JD这个标志的字母,不一定出现在开头,可能在结尾,也可能在中间,在那种场合下,通过判断是否含有某字符串才是最好的方法。
上代码
我们通过上述的描述,模拟的场景是这样的,依然是用京东的订单号作为模拟对象,不过标志性的JD不一定出现在前面,也可以在后面,中间
image.png假设各种不同类型的订单号,分别代表了不同的收货区域,并且订单中并不仅仅是只有京东的订单,那么我么要如何区分那些是京东的呢?开头?不行啊,有一些不是开头的啊,结尾,也不行啊,有些还在中间呢?那么怎么办?这就可以使用到今天我们讲要学习的通过是否包含的方式来区分了。
Sub tes()
Dim i&
For i = 2 To 10
If Cells(i, "i") Like "*JD*" Then
Cells(i, "i").Offset(0, 1) = "京东商城"
Else
Cells(i, "i").Offset(0, 1) = "非京东商城"
End If
Next i
End Sub
效果如下图:
image.png完美的实现了我们的需求
代码解析
今天的代码也是很简单,我们重点还是突出like()方法的使用,今天我们要学习的是如何判断单元格中是否包含某字符串,我们要判断的是是否含有JD这个表示,所以
If Cells(i, "i") Like "*JD*" Then
代码我们这样来实现,也非常的好理解,*代表的就是其他字符,可有可无,这样写的意思就是说只要单元格中含有了JD,不管是在开头,结尾,还是中间,都符合这样的表达式,满足条件我们就标识 出来,这是京东的订单,不符合就标识非京东,这样就可以很方便的区分了。
完整代码及注释
Sub tes()
Dim i&
For i = 2 To 10
If Cells(i, "i") Like "*JD*" Then '判断是否含有JD这两个标识
Cells(i, "i").Offset(0, 1) = "京东商城"
Else
Cells(i, "i").Offset(0, 1) = "非京东商城"
End If
Next i
End Sub
网友评论