Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] В макросе после замены исключить вопрос Wordа (http://forum.oszone.net/showthread.php?t=290856)

sereja.Laz 12-11-2014 18:09 2428569

В макросе после замены исключить вопрос Wordа
 
Здравствуйте. Работаю в 2003. Записал макрос, работает, но после замены "Знаков абзаца" в таблице на "пусто", Word задаёт вопрос:"Просмотр выделенного фрагмента закончен. Сделано... замены. Продолжить поиск в оставшейся части документа?" И макрос приостанавливается. Хотелось бы, чтобы Word сам понимал - не нужно! Можно ли что-то дописать?
Код:

Sub Макрос20()
'
' Макрос20 Макрос
' Макрос записан 12.11.2014 Сергей
' Удалить знак абзаца для уменьшения высоты строки
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "п/п"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.EndKey Unit:=wdRow, Extend:=True
    Selection.EndKey Unit:=wdColumn, Extend:=True
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^13"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.HomeKey Unit:=wdStory
End Sub


Iska 14-11-2014 07:31 2429300

Тема была откуда-то перенесена, или я просто просмотрел её создание «по месту»?!

Цитата:

Цитата sereja.Laz
Записал макрос, работает »

После записи макрос надо разобрать, подчистить и проверить.

Цитата:

Wrap Property

Returns or sets what happens if the search begins at a point other than the beginning of the document and the end of the document is reached (or vice versa if Forward is set to False) or if the search text isn't found in the specified selection or range. Read/write WdFindWrap.

WdFindWrap can be one of these WdFindWrap constants:
  • wdFindAsk After searching the selection or range, Word displays a message asking whether to search the remainder of the document.
  • wdFindContinue The find operation continues when the beginning or end of the search range is reached.
  • wdFindStop The find operation ends when the beginning or end of the search range is reached.

В первом случае у Вас использовано «wdFindContinue», а вот во втором — «wdFindAsk». Зачем при записи Вы во втором случае задали использование запроса — Вам должно быть виднее.

Скрытый текст
Код:

Option Explicit

Sub Макрос20()
' Макрос20 Макрос
' Макрос записан 12.11.2014 Сергей
' Удалить знак абзаца для уменьшения высоты строки
    With Selection
        With .Find
            .ClearFormatting
            .Text = "п/п"
           
            .Forward = True
            .Wrap = wdFindContinue
           
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
           
            With .Replacement
                .ClearFormatting
                .Text = ""
            End With
           
            .Execute
        End With
   
        .MoveDown Unit:=wdLine, Count:=1
        .EndKey Unit:=wdRow, Extend:=True
        .EndKey Unit:=wdColumn, Extend:=True
   
        With .Find
            .ClearFormatting
            .Text = "^13"
           
            .Forward = True
            .Wrap = wdFindContinue
           
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
           
            With .Replacement
                .ClearFormatting
                .Text = ""
            End With
           
            .Execute Replace:=wdReplaceAll
        End With
   
        .HomeKey Unit:=wdStory
    End With
End Sub


sereja.Laz 14-11-2014 21:58 2429618

Спасибо большое!!! :clapping: Намёк понял, только учусь... :) :beer2:


Время: 21:03.

Время: 21:03.
© OSzone.net 2001-