Если там активно используются макросы, так может проще и удобнее UDF?
Код |
---|
Function Substring(Текст As String, Символ_разделитель As String, _
Начальный_Номер_фрагмента As Long, Конечный_Номер_фрагмента As Long) As String
'---------------------------------------------------------------------------------------
' URL : http://www.planetaexcel.ru/tip.php?aid=54
' Purpose : Выделяет из текста субстринг/и, ориентируясь по символам-разделителям
' Notes : Substring(текст; символ_разделитель; Начальный_Номер_фрагмента, Конечный_Номер_фрагмента), где
' текст - текст, который делим
' символ_разделитель - символ, который надо считать разделителем фрагментов
' Начальный_Номер_фрагмента - порядковый номер фрагмента, с которого нужна выборка
' Конечный_Номер_фрагмента - порядковый номер фрагмента, по который нужна выборка
'---------------------------------------------------------------------------------------
On Error Resume Next
Dim sArr() As String, li As Long
sArr = Split(Application.Trim(Текст), Символ_разделитель)
If Конечный_Номер_фрагмента > 0 Then
Начальный_Номер_фрагмента = Начальный_Номер_фрагмента - 1
Конечный_Номер_фрагмента = Конечный_Номер_фрагмента - 1
For li = Начальный_Номер_фрагмента To Конечный_Номер_фрагмента
Substring = IIf(li = Начальный_Номер_фрагмента, sArr(li), Substring & _
Символ_разделитель & sArr(li))
Next li
Else
Substring = Split(Application.Trim(Текст), _
Символ_разделитель)(Начальный_Номер_фрагмента - 1)
End If
End Function
|
Комбинацией из двух можно в первом фрагменте выкинуть всё что до двоеточия (и его) - если конечно нужно выкинуть.