我需要检查单元格中的最后9个字符是否遵循模式。
搜索的模式是空格,两个字母和六个数字。
单元格包含一些文本,则应具有此模式。
通常,搜索到的单元格内容如下所示:
“割草机PT009988”
问候
Michał

最佳答案

这将对此进行测试。

Public Function RegExTest(sCellContent As String) As String
Dim sContent As String, sMatch As Variant, i As Long

sContent = Right(sCellContent, 9)

With CreateObject("VBScript.RegExp")
    .Global = True
    .ignorecase = True
    .Pattern = " [A-Za-z]{2}[0-9]{6}"
    If .test(sContent) Then
        Set sMatch = .Execute(sContent)
        RegExTest = sMatch(i)
        Exit Function
    End If
End With
End Function


这是需要匹配的模式:
" [A-Za-z]{2}[0-9]{6}"

1个空格,2个字母(大写和小写)和六位数字。

如果范围A1中的值是Tractor mowers PT009988,并且将此公式放在B1 =RegExTest(A1)中,则B1中的输出将是PT009988

如果您不关心它是否在最后9个字符中,则将sContent = Right(sCellContent, 9)更改为sContent = sCellContent

09-30 10:51