Доброго дня!
В прилагаемом примере в колонке 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
- НЕ работает. Помогите, пожалуйста!
А чего просто не вытащить текст формулой?
=ПСТР(B4;ПОИСК("просчет";B4)-3;25)
аа, со второй маской посложнее, да)
Хм, не получается в одной формуле дважды ПСТР и ПОИСКом использовать, с начала искать начинает, а не в вырезанном куске(
ага, победил)))
=ПСТР(B4;ПОИСК("до ";B4;ПОИСК("№";B4));17)
Здравствуйте
Если нужно именно макросом:
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
Алгоритм почти тот же, что предложил Юрий ;)
Цитата: elovkov от 11.05.2023, 09:34не получается в одной формуле дважды ПСТР и ПОИСКом использовать, с начала искать начинает
У функции
ПОИСК() есть третий аргумент -
Нач_позицияИспользуйте его:
=ПСТР(B4;НАЙТИ("до";B4;ПОИСК("до";B4)+1);11)
Ну я в итоге через него выкрутил, да, нашел в строке "№")
Цитата: elovkov от 11.05.2023, 11:14нашел в строке "№"
А если "№" в строке не будет? ;)
Решение с двойным поиском - универсальное
Ну конкретно тут № торгов, вроде должон быть) Хотя да, второе "до" более гарантировано, раз сразу маска на него настроена