Статьи из блога
Поиск слова и удаление строк над ним
Вопрос от Алексея:
Мне нужен макрос, который выполнял бы поиск ключевого слова (например "Подпись") и отсчитывал вверх от этого слова 8 строк, и вот эти отсчитанные 8 строк удалял.
Попробуйте следующий макрос:
Sub Del_8_lines() Dim rDcm As Range Dim x As Long Set rDcm = ActiveDocument.Range With rDcm.Find .Text = "подпись" If .Execute Then rDcm.Select ' Selection.Bookmarks("\line").Select ' Selection.Collapse Selection.MoveUp For x = 1 To 7 Selection.Bookmarks("\line").Select Selection.Delete Selection.MoveUp Next End If End With End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Рубрика: Вопрос-Ответ, Макросы, Стили и форматирование
Метки: макросы | поиск и замена | форматирование
Просмотров: 22981
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | поиск и замена | форматирование
Просмотров: 22981
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Word 97. Слияние документов как один из способов упростить свою работу
- Абзац с цветным фоном
- Автозаполняемые колонтитулы
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Автоформат документов
- Белый текст на синем фоне в Word 2007
- Буквица
- Быстрая смена ориентации страниц документа
- Быстрое изменение стиля форматирования текста
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрое удаление границ у таблицы
- Быстрый ввод текста с помощью команды =rand()
Комментариев: 31
Помогите с написанием макроса - у меня есть файл 1.doc, содержащий много слов, и файл 2.doc, с некоторым набором слов из 1.doc. как побыстрому удалить из 1.doc слова, используемые во втором файле?
Что нужно изменить в выше приведённом макросе, что бы искалось слово "подпись" по всему документу, и после нахождения выберались все строки содержащие это слово для дальнейщего их редактирования.
Как написать макрос чтобы он удалял всё от одного ключевого слова до другого?
Очень просто. Ищем первое слово. Запоминаем место в документе, где это слово заканчивается. Это будет точкой старта нужного диапазона.
Ищем второе слово. Его начало будет концом нужного диапазона. Запоминаем. Определяем новый диапазон и удаляем его.
Такой макрос.
Огромное СПАСИБО, Алесандр
Александр, макрос не работает
пишет ошибку в
If iStart 0 And iEnd 0 Then ActiveDocument.Range(iStart, iEnd).Delete
Блог почему-то удаляет знаки равно («=») при копировании текста. Поставь равно перед нулямм и все заработает. Нуж и еще посмотри, может где пропало.
Александр, при публикации кодов используйте обрамление их в эти теги: <pre lang="vb"></pre>. Тогда должно быть все нормально.
Александр, выделяет только "каша"
Но удаляет? Удаляет. Проверял. Чтобы не выделяло нужно убрать .Parent.Select. Я это делал для отладки, чтобы видеть диапазон.
не удаляет, а если убрать .Parent.Select. то выделяет "маша" и всё
подскажите ПОДАЛУЙСТА, очень надо
Я понял. В строке
If iStart = 0 And iEnd = 0 Then ActiveDocument.Range(iStart, iEnd).Delete
Нужно заменить And на Or. По всей видимости
Всё равно не работает
Виноват, должно быть не
а
Тогда показывает ошибку
А почему бы просто не воспользоваться диалогом "Найти и Заменить" («Ctrl+H»)? В поле Найти введите такое выражение с двумя вашими ключевиками:
(каша)*(Маша)
Поле Заменить оставьте пустым.
Установите флажки на параметре Подстановочные знаки.
Нажмите Заменить все.
А если нужно оставить ключевые слова, то в поле Заменить введите такое выражение:
\1 \2
Отпишитесь о результатах.
СПАСИБО АНТОН
Оба варианта работают ОТЛИЧНО
Так как же всетаки переходить из файла в файл при выполнении макроса? Все понятно если нужно удалить слова в одном файле, но как быть, если слова одного файла используют как шаблон для другого?? помогите, плз...
Подскажите, пожалуйста как реализовать удаление пустых строк в таблице word.
Выделите таблицу и запустите поиск и замену.
Найти: ^0013{2;}
Заменить: ^0013
Подстановочные знаки включены.
Либо можно воспользоваться вот таким макросом:
К сожалению макрос не работает при наличии объединенных по вертикали ячеек...
Павел, дело в том, что при объединении строк по вертикали исчезает само понятие строки. Поэтому работать с отдельными строками невозможно.
Можно работать только с ячейками (коллекция Cells в каждой таблице). Хотя свойство RowIndex у ячейки остается.
Например, если условиться, что пустая ячейка в таблице означает пустую строку, то можно пробовать такой макрос:
А как найти и выделить текст между комбинацией символов CHR(27)+"P" и CHR(27)+"M"?
Это досовские управляющие комбинации.
Через подстановочные символы не получается
Извините, разобрался
.Text = "(^027P)*(^027M)"
Подскажите пожалуйста как сделать так, чтобы в отдельно взятой колонке удалялись цифровые значения вместе со строками, взятые из другой колонки на соседнем листе?
спасибо за ответ
пытался применить комментарии-не смог.не подскажете как в вордовском документе удалить все строки начинающиеся со слова "без". вручную уходить нереально много времени.если можно без использования макросов.
Все строки или все абзацы? Если абзацы, тогда в поле найти записать без*^0013, включить подстановочные знаки, поле «Заменить» оставить пустым. «Заменить все»
Ну а если все же строки, тогда нужно писать макрос.
Здравствуйте. Подскажите, пожалуйста, можно ли сделать так (и как это реализовать), чтобы ворд искал самое встречаемое в тексте слово, а лучше сочетание слов и выводил информацию о том сколько раз встретилось?
Как написать макрос чтобы он удалял всё от одного ключевого слова до другого?
и небольшое изменение в макрос помогите добавить.
удаление не от слова к слову, а от предложения содержащего слово до предложения содержащее второе ключевое слово.