上节课我们学会了自动查询,解决了懒癌患者的问题,但是懒癌后期的患者肯定会说,每次输入书名都要输全名,能不能输一个字或者几个字就可以实现查询呢?当然可以,首先我们来看下代码及演示效果。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range('g1').Address Then
For Each Rng In Range('a2:a12')
If Rng Like '*'& Range('g1') & '*' Then
Range('g2') =Range('b' & Rng.Row)
Exit For
End If
Next
End If
End Sub
今天的语句较昨天就改变了一句代码便实现了这种模糊查找的功能。是哪一句呢,大家找下。
If Rng Like '*' & Range('g1') & '*'Then
对,是它是它就是它!
这句代码的意思是只要rng长得(like)像g1单元格里的内容('*' & Range('g1') & '*')就可以运行if语句下面的代码了。这里'*'在VBA的世界里代表的是任意字符、任意内容,所以当我们在g1单元格输入“枪”的时候,就表示任意字符与“枪”字组合。
这句代码不能写成If '*' & Range('g1') & '*'Like Rng Then,'*' & Range('g1')& '*'表示任意字符与枪组合,这是一个大的范围,比如: “1、2、3、4、5”这个范围像“3”其中一个吗,还是“3”像“1、2、3、4、5”其中一个。所以这里的顺序不能颠倒,另外'*'的引号不能省略,而且一定要注意用英文''号, Range('g1')前后的&也不要忘记了。
好了,这节课就讲到这,大家赶紧动手练习下吧。在练习的过程中你会发现这种方法存在一个问题,找一下!
联系客服