Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 3 ]

- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Тема: Прошу помочь с поиском и заменой абзацев и определенного текста
Вопрос от Владимира:
Помогите, пожалуйста, с макросом для Word 2003!
В большом документе надо отыскивать абзацы, написанные прописными буквами и задавать им определённый стиль (не зашитый в редактор, а пользовательский). Именно абзацы, состоящие только из прописных. То есть ^pИВАНОВ, ПЕТРОВ, СИДОРОВ^p ("ИВАНОВ, Петров, СИДОРОВ" менять не надо).
Кроме того, надо находить служебную строку ("Отчёт") и _предыдущему_ абзацу присваивать другой стиль, тоже пользовательский. Моих знаний явно не хватает. Строка для поиска ^13^13 не работает, потому что под звёздочкой понимаются любые символы, без учёта регистра. Причём искать надо от стандартной шапки до стандартного конца документа (и то и другое - не меняющиеся строки, разумеется).
Такая вот простая проблема, о которую я сломал и зубы, и голову. Или хотя бы подскажите, в каком направлении копать. Как искать ПРОПИСНОЙ АБЗАЦ, чтоб ему пусто было?

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Прошу помочь с поиском и заменой абзацев и определенного текста
Можно использовать такой шаблон для поиска с подстановочными знаками:
[А-ЯЁ][.," \-А-ЯЁ]@^0013
Но просто поиском и заменой не получится — нужно писать макрос. Для макроса желательно уточнить, какие ещё символы, кроме букв, могут быть в интересующем нас абзаце. Шаблон для поиска макросом такой:
With Selection.Find
.Text = "[А-ЯЁ][.,"" \-А-ЯЁ]@^0013"
.MatchWildcards = True
While .Execute
Selection.Paragraphs.First.Style = "Имя стиля абзаца"
Selection.Collapse wdCollapseEnd
Wend
.ClearFormatting
End With
То же самое со строкой "Отчёт". Поскольку работать нужно с предыдущим абзацем, то тоже только через макрос.
With ActiveDocument.Range.Find
.Text = "Отчёт"
While .Execute
.Parent.Paragraphs.First.Previous.Style = "Имя стиля абзаца"
Wend
End With
Лучше день потерять — потом за пять минут долететь!
- Владимир19-72
- рядовой
- Неактивен
- Зарегистрирован: 01.01.2010
- Сообщений: 1
Re: Прошу помочь с поиском и заменой абзацев и определенного текста
Спасибо! Поскольку вопрос был задан уже давно, а время не терпело, я сделал собственные макросы. Не программист, поэтому получилось коряво, но работает. Посмотрите, пожалуйста, всё ли в них правильно? (Работают, но мало ли - вдруг попадётся ситуация, когда они засбоят)
Стиль предыдущим абзацам:
Sub стиль_строкам()
'
'--------------------------------------------------------
Dim ring1 As Boolean
Do While Not ring1
Selection.Find.ClearFormatting
With Selection.Find
.Text = "Отчёт"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.TypeText Text:="zzzqqq"
Selection.HomeKey Unit:=wdLine
Selection.Find.ClearFormatting
With Selection.Find
.Text = "<*>"
.Forward = False
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Style = ActiveDocument.Styles("leader_styler")
Selection.Find.ClearFormatting
With Selection.Find
.Text = "Отчёт"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveDown Unit:=wdLine, Count:=1
If Not Selection.Find.Found Then
stopper = True
End If
Loop
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "zzzqqq"
.Replacement.Text = "Отчёт"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Абзацы прописных:
Sub строки2()
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Заглавные")
'Selection.Find.Replacement.ParagraphFormat.Borders.Shadow = False
With Selection.Find
.Text = "^13<[А-Я,0-9^32^=^+\!;:-]@>^13"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Сообщений [ 3 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Прошу помочь с поиском и заменой абзацев и определенного текста
Среди всех программ офисного пакета Microsoft наиболее часто большинству работающих за компьютером людей приходится пользоваться текстовым редактором Word. На портале о Microsoft Office Word вы узнаете про: для открытия docx в 2003.
Конечно, использовать это мощное приложение просто для набора текста, все равно, что забивать гвозди с помощью микроскопа. Наш сайт о Microsoft Office Word даст ответ про: как отредактировать текст чтобы текст был ровный в ворде.
Редактор обладает множеством встроенных функций для работы с текстами, таблицами, изображениями. Word позволяет значительно сократить количество ручного труда при наборе или редактировании текста, дает простор для фантазии при оформлении. На портале о Microsoft Office Word вы узнаете про: отключить список недавно использованных файлов.
Познакомиться со всеми тонкостями работы с программой, узнать секреты и хитрости настроек различных функций можно на сайте и форуме Ворд Эксперт, где собрана вся информация, касающаяся работы с приложением. На портале о Microsoft Office Word вы узнаете про: word 2003 не достаточно памяти для завершения операции.
В подразделе «Часто задаваемые вопросы» вы найдете общую информацию и список литературы по данной теме. На портале о Microsoft Office Word вы узнаете про: ключи для word2003.
Также для удобства читающих там рассмотрены наиболее часто встречающиеся вопросы по работе программы. На портале о Microsoft Office Word вы узнаете про: удалить таблицу с ворда оставив текст.
В этом подразделе, к примеру, собрана базовая информация о макросах, освещены вопросы автоматического удаления пробелов и так далее. Наш сайт о Microsoft Office Word даст ответ про: вставка word 2003.
Более же полно и подробно вопросы настройки программы, форматирования и рецензирования текста в разных версиях Ворда освещены в подразделе «Настройки и Форматирование», а тонкостям написания различных макросов и создания шаблонов можно научиться в разделе «Автоматизация». Наш сайт о Microsoft Office Word даст ответ про: галочка office.
Также на форуме Ворд Эксперт вы найдете готовые решения различных рабочих проблем или сможете оставить заявку с описанием своего вопроса в соответствующих разделах. На портале о Microsoft Office Word вы узнаете про: заменить все русские буквы а на латинские в тексте.