在vba中转义特殊字符是行不通的

时间:2017-05-10 12:17:33

标签: regex excel vba

我不知道为什么但是我无法逃脱模式中的特殊字符。

If StrTest Like "\[*\]" Then ...

它仍然与[1234567890]等值不匹配。 在其他线程中,我读到“\”用于转义字符,但它仍然不起作用。

在括号之间我希望任何字符串都可以。

3 个答案:

答案 0 :(得分:3)

使用VBA Like运算符时,您应该通过将它们括在方括号([])中来转义特殊字符。您在上面使用的是正则表达式的语法,它与Like模式不同。有关Like与正则表达式之间差异的详细信息,请参阅this page on MSDN

答案 1 :(得分:1)

使用x方法尝试以下解决方案。

注意:特别感谢您帮助RFC 7234

中的RegEx.Replace
Pattern

答案 2 :(得分:0)

另一种解决方案:

Sub no_spch()

For Each cell In range("a1:a10")
spch = "#+-,'.()[]!?`&:*"
For i = 1 To Len(spch)
cell.Value = Replace(Replace(cell.Value, Mid(spch, i, 1), ""), " ", "")
Next
Next

End Sub