Макросом удалить слова в ячейке слева и справа от заданного

Автор AntonD, 14.10.2015, 08:14

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

AntonD

Есть одна ячейка в которой находится определенный текст, который формируется из одной программы, ячейка excel в ней следующий текст (пишу экспромтом) Стадион, матч, команда, необходимо написать макрос что бы при нажатии на кнопку оставалось только слово матч, то есть символы и слова слева и справа удалялись. Нашел на другом форуме только такой код, может чем то поможет. Но он удаляет все знаки до запятой, мучаюсь второй день. надеюсь поможете.

Sub Del_after_comma()
Dim avArr(), lr As Long, lc As Long, lPos As Long
If Selection.Count > 1 Then
avArr = Selection.Value
Else
ReDim avArr(1, 1)
avArr(1, 1) = Selection.Value
End If
For lr = 1 To UBound(avArr, 1)
For lc = 1 To UBound(avArr, 2)
lPos = InStr(avArr(lr, lc), ",") - 1
If lPos > 0 Then
avArr(lr, lc) = Mid$(avArr(lr, lc), 1, InStr(avArr(lr, lc), ",") - 1)
End If
Next lc
Next lr
If Selection.Count > 1 Then
Selection.Value = avArr
Else
Selection.Value = avArr(1, 1)
End If
End Sub

cheshiki1

покажите в файле все возможные варианты записей и рядом что должно в итоге получиться.

AntonD

#2
Вариантов записи может очень много, в 1 ячейке динамичной, там есть функция для формирования отчёта и она формирует в таком виде (айцпй\ ацпцу\ уцйкйц) текст каждый раз разный, надо что бы просто напросто остался текст тот что по середине, слева и справа текст надо убрать, но впринципе я вроде разобрался. Помог мне 1 человек с форума, вроде работает, но не полностью протестил.
Function ExtractFromString(sStr As String, Optional sDelim As String = " ", Optional iPosition As Integer = 1) As String
'Application.Volatile
ExtractFromString = Trim(Split(sStr, sDelim)(iPosition - 1))
End Function


Работает так:  =ExtractFromString(T1;"\ ";2)дает результат "Склад"