我們知道VBA中的Like運算符是用來比較兩個字符串的,其語法為:
result = string Like pattern
如果string與pattern匹配,則result為True,如果不匹配,則result為False。Like運算符的比較方式比較靈活,除了可以使用通配符外,pattern中還可以使用中括號“[ ]”。在中括號“[ ]”中,可以用由一個或多個字符組成的組與 string 中的任一字符進行匹配。雖然用COUNTIF工作表函數可以實現類似的比較功能,但COUNTIF函數不支持中括號。為此,我們可以創建一個自定義函數來實現類似Like運算符的功能,使用起來非常方便。方法如下:
按Alt+F11,打開VBA編輯器,單擊菜單“插入→模塊”,將下列代碼輸入到代碼窗口中:
Public Function IsLike(sText As String, _
sPattern As String) As Boolean
IsLike = IIf(sText Like sPattern, True, False)
End Function
IsLike有2個字符串參數:sText和sPattern,sText類似于Like運算符的String, sPattern類似于Like運算符的pattern。其使用方法為:
=islike(sText,sPattern)
如果sText與sPattern匹配,則返回TRUE,否則FALSE。例如下面的公式:
=islike("EXCEL技巧天地","E*")
該公式檢測“EXCEL技巧天地”字符串是否已字母“E”開頭,結果返回TRUE。又如:
=islike("EXCEL技巧天地","*[技巧]*")
檢測“EXCEL技巧天地”字符串中是否包含“技”或“巧”,結果返回TRUE。如果在兩個單元格中分別輸入字符串和匹配字符,也可以用單元格地址代替參數,如下圖: