Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 2 ]
- yshindin
- генерал-полковник
- Неактивен
- Откуда: Москва
- Зарегистрирован: 12.05.2012
- Сообщений: 447
- Поблагодарили: 171
Тема: Заменить абзац на два абзаца
Добрый день.
Подскажите, кто сталкивался с подобной задачей.
Есть в документе абзацы, имеющие стиль абзаца Style1. Необходимо после каждого такого абзаца добавить абзац в стиле абзаца Style2, содержащего определенный текст. Эту задачу необходимо реализовать через операцию поиска/замены Word.
- yshindin
- генерал-полковник
- Неактивен
- Откуда: Москва
- Зарегистрирован: 12.05.2012
- Сообщений: 447
- Поблагодарили: 171
Re: Заменить абзац на два абзаца
yshindin пишет:Добрый день.
Подскажите, кто сталкивался с подобной задачей.
Есть в документе абзацы, имеющие стиль абзаца Style1. Необходимо после каждого такого абзаца добавить абзац в стиле абзаца Style2, содержащего определенный текст. Эту задачу необходимо реализовать через операцию поиска/замены Word.
Я задал этот вопрос на форуме VBAExpress ( внешняя ссылка ). Сналала Graham Mayor предложил VBA-решение, которое несколько быстрее моего:
Sub Example()
Dim oRng As Range, oNext As Range
Const strStyle1 As String = "Style1"
Const strStyle2 As String = "Style2"
Const strText As String = "New Text"
Set oRng = ActiveDocument.Range
With oRng.Find
.Style = strStyle1
Do While .Execute
oRng.InsertParagraphAfter
Set oNext = oRng.Paragraphs(1).Range.Next
oNext.Style = strStyle2
oNext.End = oNext.End - 1
oNext.Text = strText
oRng.Collapse 0
Loop
End With
lbl_Exit:
Exit Sub
End Sub
Потом некто akuini предложил вариант, который мне был нужен:
Sub addStyle()
Dim r As Range
Set r = ActiveDocument.Range
With r.Find
.Style = "Style1"
.Execute Findtext:="^p", ReplaceWith:="^p@@^p", _
Replace:=wdReplaceAll, Forward:=True
End With
Set r = ActiveDocument.Range
With r.Find
.Style = "Style1"
.Replacement.Style = "Style2"
.Execute Findtext:="@@^p", ReplaceWith:="New text^p", _
Replace:=wdReplaceAll, Forward:=True
End With
End Sub
Привлекательность последнего решения в том, что оно не зависит от числа абзацев напрямую (т.е., при большом числе абзацев в стиле Style1 оно будет быстрее первого решения).
Сообщений [ 2 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Заменить абзац на два абзаца
Такому мощному редактору текстов, как Microsoft Word, посвящено очень много литературы. Эта программа настолько многогранна и многозадачна, что изучить все тонкости работы с ней очень сложно. На портале о Microsoft Office Word вы узнаете про: как убрать в ворде пробелы между словами.растягивает два слова на всю строку. если текст должен быть по ширине документа.
Можно долгое время пользоваться Вордом и не подозревать о многих его скрытых возможностях.
На форуме сайта Ворд Эксперт собрана наиболее полная информация о функциях и нюансах работы различных версий приложения. На портале о Microsoft Office Word вы узнаете про: быстрый запуск ворд.
Посетив форум, пользователь Ворда сможет не только найти готовые решения многих проблем, но и обсудить трудности и интересующие операции. На портале о Microsoft Office Word вы узнаете про: запретить печать word 2007.
Самые часто задаваемые вопросы (такие, как удаление лишних пробелов, абзацев, написание макросов в автоматическом режиме, назначение горячих клавиш для макросов и многое другое) собраны в один подраздел. На портале о Microsoft Office Word вы узнаете про: абзац нельзя начинать с.
На форуме большое внимание уделено автоматизации различных операций. Предложены шаблоны и макросы для написания списков, печати больших текстовых массивов, работы с таблицами и иных часто повторяющихся операций. Наш сайт о Microsoft Office Word даст ответ про: что писать в квадратных скобках при сносках.
В своем подразделе обсуждается форматирование и редактирование текста, настройки различных версий программы. Наш сайт о Microsoft Office Word даст ответ про: автоформат в word 2007 кавычек.
Здесь вы найдете сведения о любой версии Ворда.
Наконец, вы просто можете оставить заявку на выполнение любой операции, описав проблему в подразделе «Заявки на разработку». На портале о Microsoft Office Word вы узнаете про: как выравнить линейку в ворде на всех листах.
Для свободного общения предусмотрена «Курилка».