模式在VBA中不匹配

阿舒托什·莱

我正在尝试匹配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

这段代码甚至为正确的匹配值上色。我只希望与上面的正则表达式不匹配的图案为红色。

病毒

您正试图逃避冒号,使其成为文字冒号。无需在VBAandLike运算符中在您使用的正则表达式模拟中进行此操作\:只是简单地告诉引擎使用文字冒号,但是只要使用:结果具有相同的效果,它就已经是文字此外,似乎您正在检查比率?如果是这样,那么我认为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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章