2017-08-17 96 views
0

我正在嘗試做一些數據清理,並可以使用替換函數的一些幫助。在VBA中替換函數

如果我需要更換Excel中的一個單元值從讓說,「保羅的驗光師霸」和「Paul驗光師PA」我只想用這樣的

Replace(t, " Pa", " PA") 

的問題,那就是它也將保羅中的字母改爲「PAul」。很顯然我不想那樣。有沒有辦法讓它不改變字符串中的任何內容,而不是專門用於「PA」的字符串,而在它之前和之後只有空格而已?

回答

1

此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

+0

我不太明白這個邏輯;因爲''Paul the Optometrist Pa''字符串包含'Paul'和'Pa'具有相同的結構。那麼肯定大小寫區分不相關? – Greedo

+0

這仍然會產生'PAul驗光師PA'。 OP很可能需要使用帶有邊界的正則表達式才能做到這一點(我知道*什麼*,我只是不知道*怎麼*) – CLR

+0

公平點 - 對我來說太晚了 – Tom