Статьи из блога
Макрос извлечения адресов e-mail и размещение их в новом документе
Максим интересуется:
Имею большое количество документов с адресами e-mail. Их-то мне и нужно собрать воедино, в один столбец, а еще лучше сразу в ексель.
Для решения этой задачи воспользуйтесь следующим макросом. Он извлекает все адреса e-mail из текста оригинала документа и помещает их столбиком в новый документ.
Sub CopyAddressesToOtherDoc() 'извлекает все email из документа и размещает в новом документе столбиком Dim Source As Document, Target As Document, myRange As Range Set Source = ActiveDocument Set Target = Documents.Add Application.ScreenUpdating = False Source.Activate Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting With Selection.Find Do While .Execute(findText:="[+0-9A-z._-]{1;}\@[A-z.]{1;}", _ MatchWildcards:=True, Wrap:=wdFindStop, Forward:=True) = True Set myRange = Selection.Range Target.Range.InsertAfter myRange & vbCr Loop End With Selection.HomeKey Unit:=wdStory Target.Activate End Sub
Если вы не знаете, как подключить к документу и применить эти макросы, изучите следующие заметки с сайта:
Создание макроса из готового кода
Рубрика: Вопрос-Ответ, Макросы
Метки: макросы
Просмотров: 34688
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы
Просмотров: 34688
Подписаться на комментарии по 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
Комментариев: 31
Я попробовал в адресе vfjkz@i-systems.ru распознаёт только vfjkz@i. Как исправить?
Добавь в эту строку
После «[A-z» еще и дефис «-»
У меня есть список адресов, как изменить макрос чтобы выбрать только яндекс или рамблер почту
Если быстро, то вот так. Хотя можно оптимизировать
Антон, неужели появилась подсветка кода в комментариях?
Большое спасибо.
Александр, нет, это я отредактировал ваш комментарий, так как он был кракозябрами.
Жалко:((
Имею большое колличество документов с адресами e-mail. Их-то мне и нужно собрать воедино, в один столбец, а еще лучше сразу в ексель
как же сделать привязку к экселю?
Привязка к Excel делается очень просто. В редакторе VBA Tools→References подключить библиотеку Microsoft Excel Object Library и можно работать с Excel как обычно: будут доступны все объекты и методы Excel
а можно сделать так, что бы макрос извлекакл из документа назваия таблиц с номерами и названиями, формат названия таблицы "Таблица 1.2.3 - Название таблицы"
названия таблиц разные и имеют разную длину,
Можно это сделать.
Предлагаю два варианта. Первый макрос работает со всеми таблицами в документе. Поскольку название таблицы обычно содержится в абзаце, который стоит непостредственно перед таблицей, то нужно просто скопировать содержимое этого абзаца
Второй макрос работает только с таблицами, которые имеют название. Название для таблиц представляет собой поле SEQ с идентификатором Таблица. Макрос ищет такие поля в документе и копирует содержимое всего абзаца, в котором это поле находится.
А можно отфильтровать все полученные mail, и удалить лишние повторяющиеся.
вот к примеру у меня такая надпись:
http://otvet.mail.ru/question/40769690/#url?to=naumova59@mail.ruhttp://otvet.mail.ru/question/40769690/#url?to=pushkareva-82@mail.ruhttp://otvet.mail.ru/question/40769690/#url?to=svet-lya-4ok@mail.ru
подскажите код макроса, что бы извлечь все E-mail адреса от знака = и до http:// в новый документ столбиком и в случаи повторения E-mail адрес не вписывались в новый документ
подскажите пожалуйста.
Предложу такой вариант: заменить все гиперссылки на знак абзаца, затем это отсортировать, а уже отсортированные абзацы легко проверить на повторяемость. Могу реализовать всё это за вознаграждение.
Спасибо не надо.
Люди подсказали уже
кому надо ловите
Но ведь от повторений это не избавляет. А макрос мой©
твой не отрицаю *Александр Витер*
А как от повторения избавится?)
И,чтоб в место абзаца ^0013 было с новой строки
Я же написал: сортировать, а затем, перебирая абзацы один за другим удалять повторы
А почему ты считаешь, что абзац и новая строка это разные понятия в данном случае? Строго говоря, разные, но в этом случае — одно и то же
когда копируешь результаты в блокнот, отображается все в сроку, а не столбиком почему-то.
КАК удалить повторяющиеся АДРЕСА?
Через "Поиск и замену". На сайте полно заметок и комментариев по этому вопросу.
В excell есть такая возможность: Данные-расширеный фильтр (Дополнительно в 2007),выбираем диапазон где нужна фильтрация, ставим флажоки "копировать результат в другое место" и "только уникальные записи" потом выделяем диапазон куда будет скопирован результат
Удачи!
А можно ли в екселе сделать с помощью макросов так:
в файле вставлено много картинок, которые которые имеют замещающий текст. Так вот, необходимо, что бы замещающий текст остался виден, а картинки пропала. Подскажите кто знает.
После вот этой строчки
Set Target = Documents.Add
создаётся новый документ и прекращается выполнение макроса
есть какие-то мысли?
Здравствуйте!
Данный макрос почему то не работает в Word 2010
Он не совместим с данной версией?
glaza-v-glaza@mail.ru
Дело не в версии. Замените в коде [ и ] на [ и ] соответственно и всё заработает.
тут нет опечатки? мы заменяем и на и?
помогите с MS 2010
В word 2016 необходимо в строке задающий поиск заменить ; на ,
[+0-9A-z._-]{1,}\@[A-z.]{1,}
СПАСИБО!
Спасибо