PDA

Показать полную графическую версию : Удаление лишних пробелов Word


NoBrain
13-08-2012, 18:22
Ребят помогите проблему решить.
В общем создаю код который бы форматировал документ (документ всегда стандартный, т.к. выгружается из определенной ИС и там куча ляпов которые нужно редактировать).

Одним из фрагментов редактирования является удаление лишних пробелов (2 и более).
Долго заморачиваться не стал и записал макрос:

DeleteSpace Макрос
' Удаление лишних пробелов
'
Selection.WholeStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " {2;}"
.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

Другого способа я не знаю.
По результатам выполнения этого кода цель достигается, только всегда выскакивает такое сообщение:
http://s1.ipicture.ru/uploads/20120813/thumbs/VWrVF94x.jpg (http://s1.ipicture.ru/Gallery/Viewfull/12443247.html)
Это конечно не смертельно, но хотелось бы его убрать что ли. Что бы оно либо не появлялось вообще, либо автоматически кнопка "нет" нажималась.

Можно ли решить эту проблему? Помогите пожалуйста.

Iska
13-08-2012, 22:12
Долго заморачиваться не стал »
Стоило попробовать.

Option Explicit

Sub RemoveMultiSpaces()
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting

.Text = " {2;}"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True

.Execute Replace:=wdReplaceAll
End With
End Sub




© OSzone.net 2001-2012