VBA检查字符串是否遵循模式,空格,两个字母,六个数字

时间:2016-08-22 11:55:58

标签: vba excel-vba excel

我需要检查来自单元格的最后9个字符是否遵循模式。 搜索的模式是空格两个字母和六个数字。 单元格包含一些文本,然后应具有此模式。 通常搜索的单元格内容看起来像这样: “拖拉机割草机PT009988” 问候 米哈尔

2 个答案:

答案 0 :(得分:3)

这将测试此。

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个字母(大写和小写)和6个数字。

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

如果您不在意这是否在最后9个字符中,请将sContent = Right(sCellContent, 9)更改为sContent = sCellContent

答案 1 :(得分:3)

试试这个(如果你想包括大写和小写字符)

$\n

https://msdn.microsoft.com/en-us/library/swf8kaxw.aspx