2017-08-17 109 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