макрос чистки до заданного символа

Автор jlik, 19.06.2011, 17:23

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

jlik

Помогите пожалуйста, написать макрос который удаляет в активной ячейке до какого то символа.
Например в активной ячейке наисано: Комплектующие<\\>материнаская плата<\\>FDG, мне нужно чтобы макрос удалял до первого встречающегося < то есть на выходе должно получится:
Комплектующие<\\>материнская плата
Буду очень признательна

jlik


nilem

Sub test()
Dim s As String
s = ActiveCell.Value
If InStr(1, s, "<") Then ActiveCell.Value = Mid$(s, 1, InStrRev(s, "<") - 1)
End Sub

Можно сделать как польз. функцию, хотя и обычные формулы должны справиться.

Alex_ST

Используйте UDFFunction ВЫДЕЛИТЬ_ФРАГМЕНТ(Текст, Номер_фрагмента, Optional Символ_разделитель = " ") As String   ' Выделяет из текста n-ный субстринг, ориентируясь по символам-разделителям
   '---------------------------------------------------------------------------------------
   ' Purpose   : Выделяет из текста n-ный субстринг, ориентируясь по символам-разделителям
   ' Notes     : текст - текст, который делим (или ячейка с текстом)
   '             символ_разделитель - символ, который надо считать разделителем фрагментов
   '             номер_фрагмента - порядковый номер фрагмента, который нам нужен
   '---------------------------------------------------------------------------------------
   On Error Resume Next
   ВЫДЕЛИТЬ_ФРАГМЕНТ = Split(Application.Trim(Текст), Символ_разделитель)(Номер_фрагмента - 1)
End Function
С уважением, Алексей

kuklp

Конкретно под хотелку:
Function Fragment(t$, Optional delim$ = "<") As String
   Dim a: a = Split(Application.Trim(t), delim)
   ReDim Preserve a(UBound(a) - 1)
   Fragment = Join(a, delim)
End Function
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771