使用条件

时间:2016-10-18 17:34:15

标签: excel vba excel-vba

我从C列和D列的报告中提取了几行信息,它基本上是一个人想要用帐户做的描述,他们当然也会使用给我你想要做的帐号是提取子串的我使用的标准是它必须以字母A开头,并且最少应为17个字符,帐号有字母和数字的组合,但它们都以字母A开头,即A8H66P66FHDSJ2YNTP这些帐号中的一些有最多25个字符,有些有19个,有些17个,所以我再次从字母A中提取子字符串,以字母A开头,至少17个字符

2 个答案:

答案 0 :(得分:1)

尝试使用RegEx,如下例所示:

Sub Test()

    Dim oCell, oMatch

    With CreateObject("VBScript.RegExp")
        .Global = True
        .MultiLine = True
        .IgnoreCase = True
        .Pattern = "\bA[A-Z0-9]{16,24}\b"
        For Each oCell In ThisWorkbook.Sheets("Sheet1").Range("C1:D1000")
            For Each oMatch In .Execute(oCell.Value)
                Debug.Print oMatch.Value
            Next
        Next
    End With

End Sub

答案 1 :(得分:0)

公式解决方案:

=IFERROR(TRIM(MID(SUBSTITUTE(C1," ",REPT(" ",LEN(C1))),LEN(C1)*(MATCH(TRUE,INDEX(ISNUMBER(SEARCH("A"&REPT("?",17),TRIM(MID(SUBSTITUTE(C1," ",REPT(" ",LEN(C1))),LEN(C1)*(ROW($1:$100)-1)+1,LEN(C1))))),),0)-1)+1,LEN(C1))),"No Account Number")