Статьи из блога
Удаление пустых абзацев
Дмитрий спрашивает:
Использую макрос, удаляющий ненужный междустрочный интервал. Но применяется он ко всему тексту в документе, а как сделать так, чтобы изменения вносились только в выделенном фрагменте, а без выделения — во всем документе?
В этом случае вы можете воспользоваться следующим макросом:
Sub delPilcrows() 'Удаление пустых абзацев только в выделенном фрагменте или во всем документе With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = "[^13]{1;}" 'искомый знак абзаца (один или больше) .Replacement.Text = "^p" 'заменяем на один знак абзаца .Format = False .Forward = True If Selection.Type = wdSelectionIP Then .Wrap = wdFindContinue Else .Wrap = wdFindStop End If .Execute Replace:=wdReplaceAll End With Selection.Collapse direction:=wdCollapseStart 'снимаем выделение End Sub
Рубрика: Макросы, Вопрос-Ответ
Метки: макросы
Просмотров: 161998
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы
Просмотров: 161998
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Абзац с цветным фоном
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Белый текст на синем фоне в Word 2007
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрый ввод текста с помощью команды =rand()
- Ввод повторяющихся фрагментов текста в Word 2007
- Ввод часто повторяющихся фрагментов текста
- Вертикальное выравнивание текста
- Возможно ли запретить копирование текста из документа Word?
- Вопрос о работе с графиками (диаграммами) в Word
- Вопросы и ответы о гиперссылках в редакторе Word
Комментариев: 3
Небольшое уточнение. По-моему, лучше так:
Попытался воспользоваться этим макросом -ничего не получилось. Надо писать самому.
Все, что требуется: удалять пустые строки в тексте.
Жаль зрение и бумагу...
Спасибо.
Алекс
Пытаюсь вернуться к проблеме. Требуется удалить пустые строки в тексте (больше двух подряд) - иногда срабатывает правильно, иногда нет. Кто-нибудь найдет ошибку??? ( разделитель - запятая!)
Sub delVoidParagraphs()
'
' delVoidParagraphs Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^13{2,}"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub