在 VBA 中比較字串
Iqra Hasnain
2022年7月18日
我們將介紹如何在 VBA 中使用不同的方法比較字串。
比較 VBA 中的字串
在使用 excel 工作表時,在某些情況下,我們必須比較字串並希望得到哪個字串小於或大於另一個字串的結果。VBA 為此提供了一個完美的方法,稱為 StrComp()
,它比較兩個字串以獲得數值結果。
如果我們比較的兩個字串相等,則此方法將返回 0
。如果第一個字串小於另一個字串,我們將獲得 -1
作為返回值。
如果第一個輸入字串大於另一個字串,我們將得到值 1
作為結果。如果使用者輸入字串之一是 empty
,則返回值將是 Null
。
StrComp()
方法使用了三種比較方法,但只有兩種最常用,我們將討論這兩種方法。如果我們想比較兩個字串的二進位制,我們可以使用 vbBinaryCompare
,這個方法是區分大小寫的。
如果我們想比較兩個字串的文字,我們可以使用 vbTextCompare
,一種不區分大小寫的方法。讓我們舉個例子,比較兩個字串。
程式碼:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World"
compare = StrComp(stringOne, stringTwo)
MsgBox compare
End Sub
輸出:
在上面的示例中,我們傳遞了與我們得到的相同的字串 0
作為返回值。讓我們傳遞不同的值並檢查我們得到的返回值。
程式碼:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World!"
compare = StrComp(stringOne, stringTwo)
MsgBox compare
End Sub
輸出:
從上面的程式碼中,我們將不同的字串傳遞給我們得到 -1
的長度作為返回值,因為第二個字串大於第一個。讓我們嘗試 StrComp()
中的字串比較方法,並檢查如果我們使用相同的字串但大小寫不同並使用 vbTextCompare
方法,結果有何不同。
程式碼:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello WorLd"
compare = StrComp(stringOne, stringTwo, vbTextCompare)
MsgBox compare
End Sub
輸出:
現在,我們在示例中通過新增一個額外的空格來使用 vbBinaryCompare
方法。
程式碼:
# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World"
compare = StrComp(stringOne, stringTwo, vbBinaryCompare)
MsgBox compare
End Sub
輸出:
這樣,我們可以使用 StrComp()
方法和內建方法(例如 vbTextCompare
和 vbBinaryCompare
)根據長度或文字比較兩個字串。