2011-01-28 2 views
2

Я ищу простой способ удаления повторяющегося текста в документе Word 2007. Если есть команды быстрого доступа с командами «Найти/заменить», я не вижу их. В противном случае, кто-то может рекомендовать, как я могу написать макрос, который работает следующим образом:Макрос для удаления всех повторяющихся экземпляров текста в слове doc

1- Выберите блок текста (может быть многословным абзацем, иметь маркерные точки и т. Д.).
2- Запустите макрос или выполните команду.
3- Макрос или команда удаляет все экземпляры выбранного текстового блока.

У вас есть понимание?

+0

Я не люблю удалять вопросы, когда люди нашли время и усилия для помочь тебе. Пожалуйста, поддержите ответы, которые помогли и выделили тот, который вам больше всего помог. – Will

ответ

3

Selection.Text возвращает текст текущего выделенного фрагмента в.

В принципе, синтаксис для команды Replace является:

Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
    .Text = Selection.Text 
    .Replacement.Text = "" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = False 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
Selection.Find.Execute Replace:=wdReplaceAll 

Вы заменить пустой строкой, таким образом удалить каждый экземпляр текста, чтобы найти.

Но: Вы должны решить, конечно, как обрабатывать форматирование выделенного текста, возможно, придется анализировать выбранный блок первой, потому что замена не может работать с контрольными гольцов пренебрегали Selection.Text ... Это просто начните, вам нужно указать, что вы хотите, а затем спросить снова, себя или нас. Между тем Записать макрос и слово vba reference - ваши друзья.

+0

У меня есть письмо с объединенным письмом, и я хочу удалить весь текст, который является тем же самым и вытащить адреса. поэтому я хочу удалить все в этом выборе и каждую копию этого документа. Я не уверен, что мне нужно указать дальше? – MAW74656

+0

Ваше требование стало более ясным, чем в исходном посте. Таким образом, вы хотите удалить вхождения текста независимо от любого форматирования? Я уверен, что вы можете найти свое решение с намеками, и я также уверен, что вы работаете над копией своего документа во время тестирования и выяснения меньших проблем. – mupan

0

Для текста альфа-номера (с символами новой строки) вы можете использовать Find/Replace, как только вы попадете в сферу пуль, новые абзацы и т. Д., Он больше не будет делать точного соответствия. Если вам часто нужно это делать, я бы предложил использовать такую ​​программу, как LaTeX, для написания ваших документов. LaTeX позволит вам сделать этот стиль точного соответствия больших блоков текста. Если вы на машине Windows, большой пакет LaTeX будет ProTEXt, который можно найти на http://www.tug.org/protext/

+0

Unfourtunatly, я должен сделать это в слове. Моя единственная реальная опция - пройти и вручную удалить эту информацию на 96 страницах. – MAW74656

0

У меня была такая же проблема, огромный список рассылки, и мне просто нужны были электронные письма. Я решил это, скопировав текст в excel, отфильтровывая предложение по предложению (или пулям) в абзаце, который я хотел удалить и удалить все строки. Мое было более 270 страниц, отлично работало (до тех пор, пока текст не слишком длинный, он был намного быстрее, чем замена предложения предложением в слове.) Или, если это опция, просто фильтруйте текстовый фильтр - начинается с "to:", то вы закончите через 10 секунд. Надеюсь, поможет.

+0

Я думаю, что они ищут более автоматизированное решение. – Jesse

0

Просто нажмите Ctrl + H, чтобы выбрать и заменить текст, введите текст, который вы хотите удалить, и нажмите Заменить все оставив заменить поле пустым

+0

Я не думаю, что это сработало бы для очень большой части текста (100 страниц). – user2284570

Смежные вопросы