Согласно моему комментарию, приведем простой пример кода, демонстрирующий использование оператора Like
:
Sub Test()
Dim str As String: str = "QWER 1234567"
Dim arr As Variant: arr = Split(str, " ")
If arr(0) Like "[A-Z][A-Z][A-Z][A-Z]" And IsNumeric(arr(1)) Then
Debug.Print str & " is passed!"
End If
End Sub
Кстати, если вы хотите использовать прописные и строчные буквы, вы можете использовать: [A-Za-z][A-Za-z][A-Za-z][A-Za-z]
Редактировать
Если вы ищете комбинацию из 4 букв c символов, то пробел, затем 6 цифры, вы даже можете сделать что-то более простое c:
Sub Test()
Dim str As String: str = "QWER 123456"
If str Like "[A-Z][A-Z][A-Z][A-Z] ######" Then
Debug.Print str & " is passed!"
End If
End Sub
Расширьте выражение, если хотите добавить еще один пробел / di git. Вы говорите о:
"ConNr = Четыре и Пробел и Шесть и Пробел и Один"
Так что [A-Z][A-Z][A-Z][A-Z] ###### #
будет работать для вас в этом случае.
Согласно вашему комментарию, вы не хотите навязывать конкретный формат c для пользователей, если они имеют 4 буквенных и 7 цифр c символов в их строка В любой форме. Итак, я решил, что так как много мест для размещения пробелов, лучше всего избавиться от них, используя Application.Substitute
. Ваш код может выглядеть следующим образом:
If Application.Substitute(Me.txtContainer.Value, " ", "") Like "[A-Za-z][A-Za-z][A-Za-z][A-Za-z]#######" Then
Debug.Print str & " is passed!"
End If
Если вы не хотите ставить перед собой c заглавные буквы, но все же хотите его вернуть, используйте функцию UCase
, чтобы ограничить всю строку сразу!
Debug.Print UCase(Application.Substitute(Me.txtContainer.Value, " ", ""))
Трудно скрыть тот факт, что это очень похоже на RegEx
.