我需要检查单元格中的最后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