共用方式為


Like 運算子

用來比較兩個字串。

語法

結果 = 字串Like模式

Like 運算子的語法有以下部分:

部分 描述
result 必要;任何數值的變數
string 必填;任何 字串表達式
模式 必填;任何符合中所述模式比對慣例的字串表達式。

註解

如果 字串 符合 模式則結果True;如果沒有相符專案, 則結果False。 如果 字串模式Null則結果Null

Like 運算子的行為取決於 Option Compare 語句。 每個模組的預設字串比較方法是Option Compare Binary

選項比較二進位 檔會根據衍生自字元內部二進位表示法的 排序順序 ,產生字串比較。 排序順序取決於代碼頁。

在下列範例中,會顯示典型的二進位排序順序:

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

選項 [比較文字 ] 會根據您系統 地區設定所決定的不區分大小寫文字排序順序,產生字串比較。 當您使用 選項比較文字排序相同的字元時,會產生下列文字排序順序:

(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)

內建模式比對提供多功能的字串比較工具。 模式比對功能可讓您在任何組合中使用通配符、字元清單或字元範圍來比對字串。 下表顯示 模式 中允許的字元及其相符的專案:

模式中的字元 字串中的相符專案
? 任何單一字元。
* 零個或多個字元。
# 任何單一數位 (0-9) 。
[ charlist ] charlist 中的任何單一字元。
[ charlist ] 任何不在 charlist 中的單一字元。

字元 清單 ( 一或多個字元群組 ) 括在方括號 ([ ]) 可以用來比對 字串 中的任何單一字元,而且可以包含幾乎任何 字元碼,包括數位。

注意事項

若要比對 [) ]、問號 () 、數位符號 # () 和 * 星號 () (特殊字元,請將它們括在方括弧中。 右括弧 (]) 無法在群組內用來比對本身,但可在群組外部當做個別字元使用。

藉由使用連字元 (-) 來分隔範圍的上限和下限, charlist 可以指定字元範圍。 例如, [A-Z] 如果 字串 中對應的字元位置包含範圍 A-Z 中的任何大寫字母,則會產生相符的結果。 括弧內包含多個範圍,不含分隔符。

指定範圍的意義取決於 運行時間 的有效字元排序 (由 Option Compare 所決定,以及程式代碼在) 上執行的系統 地區 設定。 使用 選項比較二進位範 例,範圍 [A-E] 會比對 A、B 和 E。使用 選項比較文字[A-E] 比對 A、a、À、à、B、b、E、e。 範圍不符合 Ê 或 ê,因為重音字元會落在排序順序中未使用的字元之後。

樣式比對的重要規則包括下列幾項:

  • charlist 開頭的驚歎號 () 表示如果字串中找到 charlist 中字元以外的任何字元,就會進行比對。 使用外括弧時,驚嘆號會比對本身。
  • 如果使用連字元 (-) ,則在驚嘆號之後的開頭 (可以出現連字元) 或字元 清單 結尾以比對本身。 在任何其他位置中,連字元是用來識別字元範圍。
  • 指定字元範圍時,字元必須以遞增排序順序顯示 (從最低到最高) 。 [A-Z] 是有效的模式,但不是 [Z-A]
  • 字串序列 [] 會被視為零長度字串 (“”) 。

在某些語言中,字母中有代表兩個不同字元的特殊字元。 例如,數種語言使用字元 「æ」 來代表字元 「a」 和 「e」 同時出現。 Like 運算子可辨識單一特殊字元和兩個個別字元相等。

在系統地區設定中指定使用特殊字元的語言時, 模式字串 中出現的單一特殊字元會符合另一個字串中相等的 2 個字元序列。 同樣地, 方括弧括住的單一特殊字元 (本身、清單中或範圍中) 符合 字串中相等的 2 個字元序列。

範例

這個範例會使用 Like 運算符來比較字串與模式。

Dim MyCheck
MyCheck = "aBBBa" Like "a*a"    ' Returns True.
MyCheck = "F" Like "[A-Z]"    ' Returns True.
MyCheck = "F" Like "[!A-Z]"    ' Returns False.
MyCheck = "a2a" Like "a#a"    ' Returns True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]"    ' Returns True.
MyCheck = "BAT123khg" Like "B?T*"    ' Returns True.
MyCheck = "CAT123khg" Like "B?T*"    ' Returns False.
MyCheck = "ab" Like "a*b"    ' Returns True.
MyCheck = "a*b" Like "a [*]b"    ' Returns False.
MyCheck = "axxxxxb" Like "a [*]b"    ' Returns False.
MyCheck = "a [xyz" Like "a [[]*"    ' Returns True.
MyCheck = "a [xyz" Like "a [*"    ' Throws Error 93 (invalid pattern string).

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應