上節(jié)課我們學(xué)會(huì)了自動(dòng)查詢,解決了懶癌患者的問題,但是懶癌后期的患者肯定會(huì)說,每次輸入書名都要輸全名,能不能輸一個(gè)字或者幾個(gè)字就可以實(shí)現(xiàn)查詢呢?當(dāng)然可以,首先我們來看下代碼及演示效果。 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 今天的語句較昨天就改變了一句代碼便實(shí)現(xiàn)了這種模糊查找的功能。是哪一句呢,大家找下。 If Rng Like '*' & Range('g1') & '*'Then 對,是它是它就是它! 這句代碼的意思是只要rng長得(like)像g1單元格里的內(nèi)容('*' & Range('g1') & '*')就可以運(yùn)行if語句下面的代碼了。這里'*'在VBA的世界里代表的是任意字符、任意內(nèi)容,所以當(dāng)我們在g1單元格輸入“槍”的時(shí)候,就表示任意字符與“槍”字組合。 這句代碼不能寫成If '*' & Range('g1') & '*'Like Rng Then,'*' & Range('g1')& '*'表示任意字符與槍組合,這是一個(gè)大的范圍,比如: “1、2、3、4、5”這個(gè)范圍像“3”其中一個(gè)嗎,還是“3”像“1、2、3、4、5”其中一個(gè)。所以這里的順序不能顛倒,另外'*'的引號不能省略,而且一定要注意用英文''號, Range('g1')前后的&也不要忘記了。 好了,這節(jié)課就講到這,大家趕緊動(dòng)手練習(xí)下吧。在練習(xí)的過程中你會(huì)發(fā)現(xiàn)這種方法存在一個(gè)問題,找一下! |
|