Excel VBA 是”區分大小寫”(case-sensitive)的程式語言,當 2 組英文字串為”相同字母、不同大小寫”, VBA 會判斷為不相同,如 “dog” 及 “Dog”。本篇文章說明,如何調整 VBA 為”忽略大小寫”(case-insensitive)。
內容目錄
VBA 區分大小寫 (case-sensitive)
首先,我們來看 VBA 預設(區分大小寫)的情況:
Sub caseSensitiveTest()
Dim strTextUcase As String
Dim strTextLcase As String
strTextUcase = "DOGS ARE OUR BEST FRIENDS"
strTextLcase = "dogs are our best friends"
If strTextUcase = strTextLcase Then
MsgBox "Two texts are the same"
Else
MsgBox "Two texts are different"
End If
End Sub
上述範例中,我們建立 2 個字串變數,分別輸入相同英文,但不同大小寫的句子。接著,我們判斷 2 個變數是否相同:如果相同,對話框將回傳 “Two texts are the same”;如果不相同,對話框將回傳 “Two texts are different”。
上圖對話框回傳 “Two texts are different”,這是因為不同大小寫,所以 VBA 判斷 2 組字串變數為不相同。
VBA 忽略大小寫 (case-insensitive)
我們可以在模組(module)頂端輸入 Option Compare Text
,調整 VBA 為”忽略大小寫”(case-insensitive)。
我們利用相同範例,在模組頂端輸入 Option Compare Text
:
Option Compare Text
Sub caseSensitiveTest()
Dim strTextUcase As String
Dim strTextLcase As String
strTextUcase = "DOGS ARE OUR BEST FRIENDS"
strTextLcase = "dogs are our best friends"
If strTextUcase = strTextLcase Then
MsgBox "Two texts are the same"
Else
MsgBox "Two texts are different"
End If
End Sub
我們可以從下圖中看到,對話框這次回傳 “Two texts are the same”, VBA 已經被調整為”忽略大小寫”。
字串的比較
在 VBA “區分大小寫”的情況下,我們可以使用 VBA 內建的 3 個函數:UCase、LCase 及 SreConv,先轉換字串為相同的大小寫,再進行字串的比較。上述 3 個函數詳細使用方法請參考【Excel VBA】如何轉換英文字母大小寫?3個函數快速完成。
如果本篇文章有幫助到你,請在下方拍手圖示按 5 下。只要花幾秒鐘登入 Google 或 FB 帳號,不需任何花費就能提供我實質的回饋,支持我繼續創作,謝謝