PDA

Показать полную графическую версию : [решено] В макросе после замены исключить вопрос Wordа


sereja.Laz
12-11-2014, 18:09
Здравствуйте. Работаю в 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
Тема была откуда-то перенесена, или я просто просмотрел её создание «по месту»?!

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

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
Спасибо большое!!! :clapping: Намёк понял, только учусь... :) :beer2:




© OSzone.net 2001-2012