Нужно из списков литературы множества статей выудить отдельно названия и, еще, авторов статей. У многих статей формат списка литературы одинаковый: 4. Бродецкий Г.Л., Гусев Д.А. Феномен неадекватного выбора при оптимизации закупок в цепях поставок по многим критериям // Логистика сегодня. — 2010. — No2. Название с автором легко отсекается по слешу. Но как в отдельные ячейки вынести авторов и название. Никак не получается отсечь название по последней точке в ячейке (когда уже остались только авторы и название). В файле прикреплены мои потуги: первый стобец - это сырой материал, а именно что вставляется после банального копирования, а второй уже только автор и название. Все остальные - неудачные эксперименты.
Затем ищете точку с конца строки (в столбце В) и разделяете автора и название
Код
Sub Nazvanie()
Dim i As Long
Dim n As Integer
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
n = InStrRev(Cells(i, 2), ".")
Cells(i, 3) = Mid(Cells(i, 2), 1, n)
Cells(i, 4) = Mid(Cells(i, 2), n + 2, Len(Cells(i, 2)) - n)
Next
End Sub
Видел как-то давно подобный вопрос, порылся у себя в архивах )) смотрите столбцы (E,F). Логика построена на последней точке, если вдруг получится название содержащее в себе точку, будет крах логики )))
добрый день,только прочитал Вашу тему,вариант использования функций: uuu1 в B1 и uuu2 в C1 в прилагаемом файл-примере
Код
Function uuu1$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "^(.+)\.(.+)": .Global = True
uuu1 = .Execute(t)(.Execute(t).Count - 1).Submatches(0)
End With
End Function
Код
Function uuu2$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "^(.+)\.(.+)": .Global = True
uuu2 = .Execute(t)(.Execute(t).Count - 1).Submatches(1)
End With
End Function