Страницы: 1
RSS
найти 19 цифр в тексте, структура одинаковая у цифр
 
Здравствуйте, форумчани! обращаюсь редко так как по поиску обычно можно найти решение на форуме! За что вам и благодарен:)
Есть потребность в поиске цифр с разделителями в текстовых ячейках. Структура всегда одинаковая, разделители стоят всегда в одном месте
а вот набор символов плавает по текстам. Спасибо за внимание к теме!
 
sunsetcity007, если структура всегда такая то такой вариант попробуйте
Код
=ПСТР(A2;ПОИСК("??????????:??:???:???";A2;2);22)
Не бойтесь совершенства. Вам его не достичь.
 
[S]=MID(A2;SEARCH("кадастровий номер";A2)+18;22) двоеточие не приметил

=LEFT(TRIM(MID(A2;SEARCH("кадаст";A2)+18;23));22)

Притянуто за уши, но в случае с маской ????:???? попадают не только цифры, ну и может привести к ошибке, хотя тоже можно сказать и про "кадастр"
Изменено: БМВ - 06.05.2019 17:15:45
По вопросам из тем форума, личку не читаю.
 
Mershik, попробовал формулу на массиве, результат позитивный, жму руку вам!
еще потестирую если несколько кадастровых в одной ячейке
 
Цитата
sunsetcity007 написал: если несколько кадастровых в одной ячейке
то результат будет скорее всего не тот который вы ожидаете.
Не бойтесь совершенства. Вам его не достичь.
 
Приведите пример когда несколько кадастровых в одной ячейке
для одного номера UDF
Код
Function iKadastrNomer(cell$)
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "\d{10}:\d{2}:\d{3}:\d{4}"
     iKadastrNomer = .Execute(cell)(0)
 End With
End Function

 
кнопка цитироания не для бездумного копирования [МОДЕРАТОР]

я добавил в ячейки руками цифры сменив пару цифр внутри, как результат выдает только первый попавшийся вариант в ячейке, игнорируя остальные. В любом случае и ваш скрипт отдает верный результат для одного значения
 
Цитата
если несколько кадастровых в одной ячейке
Запустить макрос, кадастровые номера выделяются из ячейки и записываются в этой же строке, начиная со столбца В и далее
Код
Sub iKadastrNomer()
Dim mo As Object
Dim n As Integer
Dim i As Long
Dim j As Integer
 With CreateObject("VBScript.RegExp")
   .Global = True
   .MultiLine = True
   .Pattern = "\d{10}:\d{2}:\d{3}:\d{4}"
  For i = 2 To 7
     If .test(Cells(i, 1)) Then
       Set mo = .Execute(Cells(i, 1))
           j = 2
         For n = 0 To mo.Count - 1
           Cells(i, j) = mo(n)
           j = j + 1
         Next
    End If
   Next
 End With
End Sub
Страницы: 1
Наверх