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