Like運算符常用於字符串比較,對VBA來說也很難掌握。
語法:
結果=字符串Like?模型
如果字符串與模式匹配,結果為真,否則為假。但是如果Like兩端的字符串和模式中有壹個是Null,那麽結果就是Null。
VBA內置的模式匹配功能提供了豐富的字符串比較方法,可以使用通配符、字符列表(或字符間隔)的任意組合來匹配模式表達式中的字符串。
圖案中的字符?匹配模式的字符串中的字符
任何單個字符
*?零個或多個字符
#任何數字(0-9)
【人物列表】?字符列表中的任何字符。
[!人物列表】?不在字符列表中的任何字符
其他字符(字符串)?與自己相配
1,Like在字符串比較中受Option Compare語句的影響。默認情況下(選項比較二進制),字符比較基於內部二進制表示法(ASCII代碼),區分大小寫。這時“A”像“A”的結果是假的。如果聲明了Option Compare Text,則進行不區分大小寫的比較,結果“A”像“A”壹樣為真。下面的討論假設默認情況下。
2.如果不使用通配符(?、*、#)和壹個字符列表,在這種情況下,Like運算符等效於=(等號)運算符。以下表達式的結果是相同的。
就像“AB”
s = "AB "
3.字符列表
理解字符列表的用法是學習喜歡的難點,我就多花點筆墨幫妳理解了。
(1)字符列表匹配字符串中的壹個字符,不管字符列表中實際有多少個字符。
“A”喜歡[ABCDEGHIJ2345]結果為真。
像[ABCDEGHIJ2345]這樣的“AB”會導致False。
唯壹的例外是[]被視為零長度字符串。
(2)字符列表中的單個字符沒有順序要求。以上【ABCDEGHIJ2345】和【ACDEGHIJ2345B】。
[3ABCDEGHIJ245]...等等都是壹樣的表情。
(3)字符列表中的壹個連續字符(稱為區間,壹個字符列表可以有多個區間,廣義上也可以把單個字符看作壹個區間)可以用連字符(-,減號)簡化,如上面的表達式[ABCDEGHIJ2345]可以簡化為[A-EG-J2-5],連字符要遵循從小到大的順序。但是多個區間之間沒有順序要求,也就是說[G-J2-5A-E],[2-5G-JA-E]...等等都是壹樣的表情。