Как создать макрос регулярного выражения VBA для проверки формата GIIN - PullRequest
1 голос
/ 14 мая 2019

Я пытаюсь создать макрос, который будет проверять данные в одном столбце, а затем сообщать мне, правильно ли они отформатированы в следующем столбце.Я очень новичок в 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

1 Ответ

2 голосов
/ 14 мая 2019

Попробуйте следующий шаблон

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

Вы можете вызвать вашу функцию в цикле по ячейкам в столбце и использовать смещение (0,1), чтобы записать результат в следующий столбец справа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...