[英]escaping special characters in vba is not working
我不知道为什么,但是我无法在模式中转义特殊字符。
If StrTest Like "\[*\]" Then ...
它仍然与[1234567890]之类的值不匹配。 在其他线程中,我读到“ \\”用于转义字符,但仍然无法正常工作。
在方括号之间,我希望任何字符串都可以。
使用VBA Like
运算符时,应该通过将特殊字符括在方括号( [
和]
)中来对其进行转义。 上面您使用的是正则表达式的语法,这与Like
模式不同。 请参阅MSDN上的此页面,以获取有关Like
和正则表达式之间区别的更多信息。
使用RegEx.Replace
方法尝试以下解决方案。
注意 :特别感谢您提供此答案中的Pattern
Option Explicit
Sub ClearData()
Dim StrTest As String
Dim Result As String
Dim Reg1 As Object
StrTest = "[1234567890]"
Set Reg1 = CreateObject("VBScript.RegExp")
With Reg1
.Global = True
.IgnoreCase = True
.Pattern = "[-[\]{}()*+?.,\\/^$|#\s]" ' escape special characters pattern
End With
If Reg1.test(StrTest) Then
Result = Reg1.Replace(StrTest, Result)
End If
End SUb
另一个解决方案:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.