Если Вы хотите написать программу только для того, чтобы разделить данные, то в таком случае, вполне можно обойтись обычными формулами :
A1 - Лейтес Н.С. Возрастная одаренность школьников. учеб. Пособие
B1 =ПСТР(A1;1;ПОИСК(". ";A1))
B1 =ПСТР(A1;1;НАЙТИ(". ";A1))
C1 =ПСТР(A1;ПОИСК(". ";A1)+2;32000)
С1 =ПОДСТАВИТЬ(A1;B1&" ";"")
После того, как формулы станут не нужны, их можно заменить на результат, которые они возвращают. Осуществить это можно, например, так :
- выделите диапазон, содержащий формулы
- в меню Правка выберите команду Копировать (CTRL+C)
- затем, всё в том же меню Правка выберите команду Специальная вставка
- в появившемся стандартном диалоговом окне установите переключатель напротив Значения и кликните кнопку OK.
Если же использование макросов обязательно, то и в этом случае можно воспользоваться формулами, только программно, но можно и помучить строковые функции VB, например InStr, Mid
Код
iText = "Лейтес Н.С. Возрастная одаренность школьников. учеб. Пособие"
iPosition = InStr(iText, ". ")
If iPosition = 0 Then
MsgBox "Не самый удачный критерий разделения ФИО и названия книги"
Else
iAuthor = Mid(iText, 1, iPosition): MsgBox "Автор : " & iAuthor, , ""
iBook = Mid(iText, iPosition + 2): MsgBox "Книга : " & iBook, , ""
'Функция MsgBox используется только для наглядности
End If
P.S. Если какая-либо часть ответа требует более тщательного освещения, то разговор всегда можно продолжить …