1

我正在尝试创建一个宏来验证一列中的数据,然后让我知道它们在下一列中的格式是否正确。我对 VBA 很陌生,所以如果我的代码混乱,我深表歉意。

我要验证的格式是 ABC123.AB123.AB.123——前两个部分可以包含字母/数字,第三部分只能包含字母,最后一部分只能包含数字。

任何指导将不胜感激!

Function ValidGIIN(myGIIN As String) As String
    Dim regExp As Object

    Set regExp = CreateObject("VBScript.Regexp")

    If Len(myGIIN) Then
            .Global = True
            .IgnoreCase = True
            .Pattern = "[a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][.][a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_][.][a-zA-z_][a-zA-z_][.][0-9][0-9][0-9]"

        End With

        If regExp.Test(myGIIN) = True Then
            ValidGIIN = "Valid"
        Else
            ValidGIIN = "Invalid"

        End If
    End If
    Set regExp = Nothing

End Function
4

1 回答 1

2

尝试以下模式

[a-zA-Z0-9]{6}\.[a-zA-Z0-9]{5}\.[A-Za-z]{2}\.\d{3}

您可以在列中的单元格上循环调用您的函数,并使用 offset(0,1) 将结果写入到右侧的下一列。

于 2019-05-14T19:03:36.197 回答