我正在尝试匹配VBA中的模式,但它不起作用。我正在尝试匹配-> 1:0之类的模式
If Cells(i, 7) Like "[0-9]\:[0-9]" Then
Range("G" & i).Interior.ColorIndex = 0
Else
CountDTPSelectionError = 1
Range("G" & i).Interior.Color = RGB(255, 0, 0)
ErrorsLog = ErrorsLog & TimeStamp & " Error: " & "DTP Selection Is not Defined Correctly" & vbNewLine
End If
这段代码甚至为正确的匹配值上色。我只希望与上面的正则表达式不匹配的图案为红色。
您正试图逃避冒号,使其成为文字冒号。无需在VBA
andLike
运算符中或在您使用的正则表达式模拟中进行此操作。\:
只是简单地告诉引擎使用文字冒号,但是只要使用:
结果具有相同的效果,它就已经是文字。此外,似乎您正在检查比率?如果是这样,那么我认为0:1
这将是无效的比率?为此,请参见以下内容:
Sub Test()
Dim arr As Variant: arr = Array("12:9", "1:9", "1/9", "0:1)
For Each el In arr
If el Like "[1-9]:#" Then
Debug.Print el & "= Correct"
Else
Debug.Print el & "= Incorrect"
End If
Next
End Sub
哪里#
是短期的[0-9]
操作范围内。请记住,尽管Like
和正则表达式具有相似之处,但它们并不相同!
注意:如果0:1
是有效模式,则只需#:#
按照注释中提到的@YasserKhalil进行更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句