我正在尝试创建一个宏来验证一列中的数据,然后让我知道它们在下一列中的格式是否正确。我对 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}
您可以在列中的单元格上循环调用您的函数,并使用 offset(0,1) 将结果写入到右侧的下一列。
关于regex - 如何为 GIIN 格式验证创建正则表达式 VBA 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56136745/