設定 VBA “忽略大小寫”(case insensitive) | 1 行程式碼輕鬆完成

忽略大小寫

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 帳號,不需任何花費就能提供我實質的回饋,支持我繼續創作,謝謝

發表迴響