在Excel字符串中,请帮忙提取前连续9个字母数字字符

问题描述 投票:0回答:1

对于字符串“Johnny#-ANF14112-26406TAG8-Bob: Frank Johnny#”,我尝试提取“26406TAG8”。挑战在于分隔符并不总是“-”。它可能是空格、冒号等,我只想要前连续 9 个字母数字值。我尝试过的公式给我带来了像 JohnnyANF 这样的东西,或者它第一次起作用,但一旦分隔符改变它就不起作用。

此外,我想避免使用数组公式,但愿意接受 VBA 解决方案。

=MID(A1, FIND("-", A1, FIND("-", A1) + 1) + 1, 9)

excel vba excel-formula excel-2010 excel-2007
1个回答
0
投票

使用 RegExp 提取前连续 9 个字母数字字符

Sub ExtractAlphanumeric()
    Dim strInput As String
    strInput = "Johnny#-ANF14112-26406TAG8-Bob: Frank Johnny#"
    Dim objRegExp As Object
    Set objRegExp = CreateObject("VBScript.RegExp")
    With objRegExp
        .Pattern = "(\w{9})"
        .Global = False
    End With
    Dim objMatches As Object
    Set objMatches = objRegExp.Execute(strInput)
    If objMatches.Count > 0 Then
        Debug.Print objMatches(0).SubMatches(0)
    Else
        Debug.Print "No match found"
    End If
    Set objRegExp = Nothing
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.