Добрый день, уважаемые! Подскажите пож-та или помогите с направлением, где копать.
Есть выгрузка в формате excel, где в одном столбце текстом указан перечень услуг за единицу или единицы товаров, например: "Услугу по организации сервиса для ABCA1234567 в период с 1 января" или "Услуги по предоставлению сервиса для DDDA7654321, BABC5463217" и тд.
Необходимо вытащить из ячеек текст/значения (ABCA1234567,DDDA7654321, BABC5463217), которые всегда соответствую параметру 4 латинские буквы и 7 цифр.
Не знаю, существует ли какой-то набор формул, который позволит определить, что в ячейке есть значение, соответствующее условию "4 латинские буквы и 7 цифр". Помогите)
Sub GetFragment()
Dim mo As Object
Dim n As Integer
Dim i As Long
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[A-D]{4}[0-9]{7}"
For i = 1 To iLastRow
If .Test(Cells(i, 1)) Then
Set mo = .Execute(Cells(i, 1))
For n = 0 To mo.Count - 1
Cells(i, n + 2) = mo(n)
Next
End If
Next
End With
End Sub
Для разнобразия =ЕСЛИОШИБКА(ПСТР($A7;НАИМЕНЬШИЙ(ЕСЛИ((ПСТР($A7;СТРОКА($A$1:ИНДЕКС($A:$A;ДЛСТР($A7)));1)=" ")*(ABS(КОДСИМВ(ПСТР($A7;СТРОКА($A$1:ИНДЕКС($A:$A;ДЛСТР($A7)))+1;1)&0)-77,5)<13);СТРОКА($A$1:ИНДЕКС($A:$A;ДЛСТР($A7))));ЧИСЛСТОЛБ($B7:B7))+1;11);"")