VBA替换文本而不替换包含类似文本的其他单词

时间:2017-11-22 03:34:03

标签: vba excel-vba excel

我正在尝试使用“*”作为F列中数据的通配符。所有数据的格式和长度与“Pie **”相同,其中每个“*”代表(0-9)

示例:Pie22,Pie71,Pie15,Hot22,Hot41,Hot98

当我尝试下面的代码时,我遇到了CoffeeXX发现并在“hotdog”中替换“Hot”的问题,它变成了“chickendog”。

有没有修复此问题,以便.find看到通配符而不是只选择包含文本的任何内容?

Set PieXX = Columns("F").Find(What:="Pie**", Lookin:=xlvalues)
If not PieXX is nothing then
Columns("F").Replace What:"Pie**", replacement:="Hotdog", _
SearchOrder:=xlbyrows, Matchcase:=False, SearchFormat:=False, Replaceformat:=false
End If

    Set CoffeeXX = Columns("F").Find(What:="Hot**", Lookin:=xlvalues)
If not CoffeeXX is nothing then
Columns("F").Replace What:"Hot**", replacement:="Chicken", _
SearchOrder:=xlbyrows, Matchcase:=False, SearchFormat:=False, Replaceformat:=false
End If

1 个答案:

答案 0 :(得分:2)

For each cell in Range("F1", Range("F1").End(xlDown))
    If cell.value like "pie??" then cell.Replace "pie", "hi", LookAt:=xlPart
Next

这是未经测试的