回覆列表
  • 1 # 使用者7724478402265

    Excel VBA中判斷變數包含特定字串,一般用vba like函式進行判斷。Like運算子是字串比較時經常使用的運算子,也是VBA較難掌握的運算子。語法:結果 = 字串 Like 模式如果字串與模式匹配,結果為True,否則為False。但是如果Like兩端的字串和模式有一個為Null,則結果為Null。VBA內建的模式匹配功能提供了豐富的字串比較方式,在模式表示式中可以使用萬用字元、字元列表(或字元區間)的任何組合來匹配字串。模式中的字元 與模式匹配的字串中的字元? 任何單一字元* 零個或多個字元# 任何一個數字(0-9)[字元列表] 字元列表中的任何一個字元[!字元列表] 不在字元列表中的任何一個字元其它字元(串) 與自身匹配1、Like在字串比較時受Option Compare語句的影響,在預設情況下(Option Compare Binary),字元比較根據內部二進位制表示法(ASCII碼)進行,是區分大小寫的,此時 "A" Like "a" 的結果為False。如果聲明瞭Option Compare Text,則不區分大小寫比較,"A" Like "a" 的結果為True。後面的討論假設預設情況下。2.如果模式中沒有使用萬用字元(?、*、#)和字元列表,此時Like運算子等價於=(等號)運算子。下面表示式的結果相同。s Like "AB"s = "AB"3.字元列表理解字元列表的用法是學會Like的難點,所以,下面我會多花些筆墨幫你理解它。(1)一個字元列表匹配的是字串中的一個字元,不管字元列表中實際有多少個字元。"A" Like [ABCDEGHIJ2345] 結果為True"AB" Like [ABCDEGHIJ2345] 結果為False唯一的例外是[]被看作長度為零的字串。(2)字元列表中的單個字元,沒有順序要求,上面[ABCDEGHIJ2345]和[ACDEGHIJ2345B][3ABCDEGHIJ245]...等等是一樣的表達。(3)字元列表中一段連續的字元(稱為區間,一個字元列表可以有多個區間,廣義上,單個字元也可被看作一個區間),可以使用連字元(-,減號)簡化表示式,如上面的表示式[ABCDEGHIJ2345]可以簡化為[A-EG-J2-5],連字元要遵循從小到大的順序(升序),即連字元(-)右端的字元應大於左端的字元,如其中的A-E不能寫成E-A,後者系統會報錯。但多個區間之間沒有順序要求,這意味著[G-J2-5A-E]、[2-5G-JA-E]...等是同一表達。

  • 中秋節和大豐收的關聯?
  • 怎麼吃泡麵比較健康呢?