Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2011, 13:41   #1
entscheiden
 
Регистрация: 09.03.2011
Сообщений: 6
По умолчанию Макрос: найти все, копировать

Здравствуйте.
Промежуточная стадия макроса (записывал макрорекордером) -- поиск в документе всех фрагментов, удовлетворяющих заданному условию (используются подстановочные знаки) и копирование найденных фрагментов.

Макрорекордер записывает все параметры поиска, а команду "Найти все" игнорирует.
entscheiden вне форума Ответить с цитированием
Старый 29.03.2011, 14:10   #2
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
По умолчанию

WordBasic.EditOfficeClipboard

Selection.Copy
garik64 вне форума Ответить с цитированием
Старый 29.03.2011, 14:25   #3
entscheiden
 
Регистрация: 09.03.2011
Сообщений: 6
По умолчанию

garik64
Выдает ошибку "Метод или свойство недоступны, поскольку выделенный текст отсутствует".
entscheiden вне форума Ответить с цитированием
Старый 29.03.2011, 22:16   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

не игнорирует. Там в параметрах поиска указывается, что нужно продолжить поиск после нахождения нужного фрагмента. Но в вашем случае нужно похитрее. Куда копировать фрагменты-то?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 29.03.2011, 22:36   #5
entscheiden
 
Регистрация: 09.03.2011
Сообщений: 6
По умолчанию

viter.alex
Все найденные фрагменты предполагалось вставить в новый документ для дальнейшей обработки.
entscheiden вне форума Ответить с цитированием
Старый 29.03.2011, 23:34   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Ну как-то так
Код:
Sub FindCopyPaste()
  Dim NewDoc As Document
  Dim OldDoc As Document
  Dim oRng As Range
  
  Set OldDoc = ActiveDocument
  
  'Создаём новый документ и запоминаем его диапазон
  Set NewDoc = Documents.Add
  Set oRng = NewDoc.Range
  
  'Поиск в основном документе (активном на момент запуска макроса)
  With OldDoc.Range.Find
    .Text = "[абвг]" 'Выражение для поиска
    .MatchWildcards = True
    'Пока поиск завершился успешно
    While .Execute
      .Parent.Copy 'Копируем найденный фрагмент в буфер
      'И вставляем в новый документ
      oRng.Collapse wdCollapseEnd
      oRng.Paste
    Wend
  End With
End Sub
Но можно и не засорять буфер обмена, если не нужно сохранение форматирования
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 29.03.2011, 23:54   #7
entscheiden
 
Регистрация: 09.03.2011
Сообщений: 6
По умолчанию

viter.alex
Работает, большое спасибо.
entscheiden вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как переделать макрос копировать из других книг(Excel 2003) vfv Microsoft Office Excel 2 18.01.2011 15:22
Помогите создать макрос, который бы удалил все ячейки, кроме каждой 8-ой Рамирас Microsoft Office Excel 7 24.07.2010 19:37
Копировать текст из webbrowser в memo (включить ctrl+c ctrl+v) копировать - вставить Alar Работа с сетью в Delphi 13 12.07.2010 18:16
макрос который будет копировать столбец А из закрытой книги Данные, и вставлять в книгу Сток в столбец B Utirka66 Microsoft Office Excel 8 06.07.2009 09:53