Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Вытащить данные по шаблону из строки.

Автор GWolf, 10.05.2023, 21:19

« назад - далее »

GWolf

Доброго дня!
В прилагаемом примере в колонке B, приведены примеры строковых записей из которых нужно "вытащить" данные согласно шаблонам, указанным в ячейках колонок C и D. Пробовал конструкцию: Sub poSablonu()
    Dim clll As Range
    Dim stroka As String
    Dim Shablon As String
   
    Set clll = Selection
    stroka = clll.Text
    Shablon = clll.Offset(, 1).Text

    If stroka Like Shablon Then
        Stop
    Else
        Stop
    End If
   
    Set clll = Nothing
End Sub
- НЕ работает. Помогите, пожалуйста!
Путей к вершине - множество. Этот один из многих!

elovkov

#1
А чего просто не вытащить текст формулой?
=ПСТР(B4;ПОИСК("просчет";B4)-3;25)аа, со второй маской посложнее, да)
Хм, не получается в одной формуле дважды ПСТР и ПОИСКом использовать, с начала искать начинает, а не в вырезанном куске(
ага, победил)))
=ПСТР(B4;ПОИСК("до ";B4;ПОИСК("№";B4));17)
Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица. Улыбайтесь, господа, улыбайтесь!

Serge 007

Здравствуйте
Если нужно именно макросом:
Sub poSablonu()
Dim clll As Range
    For Each clll In [b4:b8] 'Selection
        clll.Offset(, 3) = Mid(clll, InStr(clll, clll.Offset(, 1)), 24)
        clll.Offset(, 4) = Mid(clll, InStr(InStr(clll, clll.Offset(, 1)) + 25, clll, clll.Offset(, 2), 0) + 1, 11)
    Next
End Sub
Алгоритм почти тот же, что предложил Юрий ;)
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

Serge 007

Цитата: elovkov от 11.05.2023, 09:34не получается в одной формуле дважды ПСТР и ПОИСКом использовать, с начала искать начинает
У функции ПОИСК() есть третий аргумент - Нач_позиция
Используйте его:=ПСТР(B4;НАЙТИ("до";B4;ПОИСК("до";B4)+1);11)
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

elovkov

#4
Ну я в итоге через него выкрутил, да, нашел в строке "№")
Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица. Улыбайтесь, господа, улыбайтесь!

Serge 007

Цитата: elovkov от 11.05.2023, 11:14нашел в строке "№"
А если "№" в строке не будет? ;)
Решение с двойным поиском - универсальное

Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

elovkov

Ну конкретно тут № торгов, вроде должон быть) Хотя да, второе "до" более гарантировано, раз сразу маска на него настроена
Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица. Улыбайтесь, господа, улыбайтесь!