1

Тема: Поиск в нужном диапазоне страниц worda

Необходимо осуществить поиск дат определенного формата (например дд.мм.гггг или дд.месяц(текстом) гггг.) со 2-й по 4-ю страницу документа.Пожалуйста, подскажите ,как это можно осуществить(не особо сильна в макроса.Пока только осуществила поиск во всем документе

Post's attachments

7 Континент_25.12.13 c макросом.doc 75.5 Кб, 3 скачиваний с 2014-01-15 

You don't have the permssions to download the attachments of this post.

2

Re: Поиск в нужном диапазоне страниц worda

Ищем даты вида "1 апреля 2014":

Public Sub Replace_On_The_Pages()

Const P1 As Long = 2 ' первая страница поиска
Const P2 As Long = 4 ' последняя страница поиска
Const T As String = "<[0-9]{1;2}>[ ^s]@[А-ЯЁа-яё]@[ ^s]@[0-9]{4}>" ' маска поиска

Dim D As Document, R As Range, N As Long, P As Long

    ' документ
    Set D = ActiveDocument
    ' разбиваем документ на страницы
    D.Repaginate
    ' область начала поиска
    Set R = D.GoTo(wdGoToPage, wdGoToAbsolute, P1)
    ' параметры поиска
    With R.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Forward = True
        .Wrap = wdFindStop
        .MatchWildcards = True
        .Text = T
        ' параметры замены
        '.Replacement.Text = ""
    End With
    ' цикл поиска
    N = 0 ' счетчик
    Do
        ' ищем
        R.Find.Execute
        If R.Find.Found <> True Then Exit Do ' не нашли
        P = R.Information(wdActiveEndPageNumber) ' страница находки
        If P > P2 Then Exit Do ' выход за диапазон страниц
        ' нашли
        N = N + 1
        ' делаем что-то
        '...
        ' пример замены
        'R.Collapse Direction:=wdCollapseStart
        'R.Find.Execute Replace:=wdReplaceOne
        '...
        ' сообщаем пользователю
        R.Select
        If MsgBox("Находка " & N & " / Страница " & P, vbOKCancel) <> vbOK Then Exit Do
        '...
        ' ищем далее
        R.Collapse Direction:=wdCollapseEnd
    Loop
    MsgBox "Всего найдено " & N
    
End Sub
Макросы под заказ и готовый пакет - mtdmacro.ru

3

Re: Поиск в нужном диапазоне страниц worda

Спасибо огромное)вы мне очень очень помогли)
Хотела еще уточнить, а можно в маске поиска ,задать поиск одновременно формат месяца текстовой и цифрами??(пример 01.04.2013 и 01 апреля 2014)

То есть, чтоб макрос учитывал подсчет и текстового формата и цифр. Я с подстановочными знаками не очень сильна, но хочу сказать, что это очень нужная штука)

4

Re: Поиск в нужном диапазоне страниц worda

Аня пишет:

...поиск одновременно формат месяца текстовой и цифрами...

Попробуйте такой  шаблон:

Const T As String = "<[0-9]{1;2}>[. ^s]@[А-ЯЁа-яё0-9]@[. ^s]@[0-9]{4}>" ' маска поиска
Макросы под заказ и готовый пакет - mtdmacro.ru

5

Re: Поиск в нужном диапазоне страниц worda

Здесь можно прочитать о подстановочных знаках при поиске и замене в Word
внешняя ссылка
Начинать со стр. 94 по колонтитулу.

6

Re: Поиск в нужном диапазоне страниц worda

Спасибо за помощь)и материалы smile  smile