0
我正在嘗試做一些數據清理,並可以使用替換函數的一些幫助。在VBA中替換函數
如果我需要更換Excel中的一個單元值從讓說,「保羅的驗光師霸」和「Paul驗光師PA」我只想用這樣的
Replace(t, " Pa", " PA")
的問題,那就是它也將保羅中的字母改爲「PAul」。很顯然我不想那樣。有沒有辦法讓它不改變字符串中的任何內容,而不是專門用於「PA」的字符串,而在它之前和之後只有空格而已?
我正在嘗試做一些數據清理,並可以使用替換函數的一些幫助。在VBA中替換函數
如果我需要更換Excel中的一個單元值從讓說,「保羅的驗光師霸」和「Paul驗光師PA」我只想用這樣的
Replace(t, " Pa", " PA")
的問題,那就是它也將保羅中的字母改爲「PAul」。很顯然我不想那樣。有沒有辦法讓它不改變字符串中的任何內容,而不是專門用於「PA」的字符串,而在它之前和之後只有空格而已?
此RegEx將在字符串中匹配Pa
並將其替換爲PA
。這可以通過你的數據很容易地更新循環設置
Sub RegExExample()
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = False
.Pattern = "(Pa)\b"
MsgBox .Replace("Paul the Optometrist Pa", "PA")
End With
End Sub
將輸出Paul the Optometrist PA
我不太明白這個邏輯;因爲''Paul the Optometrist Pa''字符串包含'Paul'和'Pa'具有相同的結構。那麼肯定大小寫區分不相關? – Greedo
這仍然會產生'PAul驗光師PA'。 OP很可能需要使用帶有邊界的正則表達式才能做到這一點(我知道*什麼*,我只是不知道*怎麼*) – CLR
公平點 - 對我來說太晚了 – Tom