![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 27.01.2010
Сообщений: 5
|
![]()
В документе некоторые абзацы - это часть нумерованного списка в формате "Книга 1", "Книга 2" и т.д. Есть абзацы, начинающиеся словом Автор, словом Аннотация и словом Год. Нужно удалить аннотации и годы. Алгоритмически - это в цикле выделять текст от очередного слова "Аннотация" до ближайшего следующего абзаца, начинающегося как нумерованный список "Книга Х", и выделенный фрагмент удалять.
Подскажите, плз, как это выглядит в VBA? Здесь фрагмент файла: http://ifolder.ru/28017997 На всякий случай уточню, что Word-2003; ручками это сделать тяжело (в реале в файле много страниц), но, может, можно сделать вордовский макрос? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,166
|
![]()
начало списка высчитать
конец слова высчитать а уж какого списка и какого слова только Вы знаете |
![]() |
![]() |
![]() |
#3 |
Регистрация: 27.01.2010
Сообщений: 5
|
![]()
"начало списка высчитать" - КАК?
"а уж какого списка и какого слова только Вы знаете" - я ж для чего-то выложил ссылку на файл. Поконкретнее можно? |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 17.11.2010
Сообщений: 222
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
Если Аннотация представляет собой один АБЗАЦ, то надо просто удалить три абзаца из каждых пяти. Запустите макрос в приложенном файле (Alt+F8).
Файл следует прикладывать к сообщению, т.к. не у всех есть доступ к файлообменникам на работе.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
#6 | |
Регистрация: 27.01.2010
Сообщений: 5
|
![]() Цитата:
![]() Пытался (трижды через "управление вложениями"), но выдавало "Загрузка файла прошла неудачно". |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 27.01.2010
Сообщений: 5
|
![]()
Александр, Ваш код работает, спасибо большое!
1. Есть одно маленькое "но": на большом файле скрипт дает сбой. То ли из-за того, что слова "книга", "автор", "год", "аннотация" встречаются и внутри аннотаций, то ли еще из-за чего. В связи с этим вопрос: можно ли выделять фрагменты именно от "Аннотация:" (включительно) до следующего ближайшего начала нумерованного списка ("Книга N") и не удалять его, а скажем, помечать как "Скрытый"? 2. Посоветуйте, плиз, самоучитель (книгу) по VBA (под Word), которую можно свободно скачать в инете и научиться самостоятельно писать скрипты для похожих задач, а то мой опыт ограничен записью макросов в самом Word-е (ну, Вы понимаете, просто начинаю запись, жму кнопки, останавливаю запись, - скрипт готов). Последний раз редактировалось Dimasick; 10.01.2012 в 19:58. Причина: примечание |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
выделить слова из строки | vvsh | Общие вопросы C/C++ | 2 | 08.05.2011 08:36 |
Разбить текст на слова и произвести поиск каждого слова по текстовому массиву | Burning_brook | Microsoft Office Excel | 2 | 22.05.2010 01:56 |
Как удалить текст до слова, потом от слова ? | littlecoder | Общие вопросы Delphi | 7 | 29.12.2008 00:57 |
Выделить элемент списка | Иллидан | Microsoft Office Word | 5 | 23.09.2008 09:33 |