Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为GIIN格式验证创建regex VBA宏_Regex_Excel_Vba - Fatal编程技术网

如何为GIIN格式验证创建regex VBA宏

如何为GIIN格式验证创建regex VBA宏,regex,excel,vba,Regex,Excel,Vba,我正在尝试创建一个宏,它将验证一列中的数据,然后在下一列中告诉我这些数据的格式是否正确。我对VBA很陌生,所以如果我的代码很混乱,我很抱歉 我试图验证的格式是ABC123.AB123.AB.123——前两部分可以包含字母/数字,第三部分只能包含字母,最后一部分只能包含数字 任何指导都将不胜感激 Function ValidGIIN(myGIIN As String) As String Dim regExp As Object Set regExp = CreateObject

我正在尝试创建一个宏,它将验证一列中的数据,然后在下一列中告诉我这些数据的格式是否正确。我对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

尝试以下模式

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

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

数字/字母的顺序是否重要?我想ABC代表任何a-zA-Z?所以这两种情况都应该涵盖?同样,123是0-9?你的代码有什么问题?数字/字母的顺序无关紧要。你的假设是正确的。存在?在哪里可以包含数字和字母?你的意思是每个部分必须至少有一个?它们可以包含这些部分的字母或数字。好的。。。图案的“.”是否实际存在?在这个模式之前或之后会有什么?例如,使用[a-zA-Z0-9]{6}\.[a-zA-Z0-9]{5}\.[a-zA-z]{2}\.\d{3}是否足够