如何为GIIN格式验证创建regex VBA宏
我正在尝试创建一个宏,它将验证一列中的数据,然后在下一列中告诉我这些数据的格式是否正确。我对VBA很陌生,所以如果我的代码很混乱,我很抱歉 我试图验证的格式是ABC123.AB123.AB.123——前两部分可以包含字母/数字,第三部分只能包含字母,最后一部分只能包含数字 任何指导都将不胜感激如何为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
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}是否足够