Dim Wrd As Word.Application
Dim WrdDc As Object
.........
Set Wrd = New Word.Application
Set WrdDc = Wrd.Documents.Open((SaveFlName), , False)
Срочно!!! Беда, возникающая после поиска и замены в шейпе в Word
1. Открываю шаблон:
Код:
2. Потом бегаю по шейпам и заменяю в них текст не необходимый мне
Код:
For I = 1 To WrdDc.Shapes.Count
...............
WrdDc.Shapes(I).TextFrame.TextRange = TxShape
................
Next
...............
WrdDc.Shapes(I).TextFrame.TextRange = TxShape
................
Next
Всё работает замечательно. Но в одном из шейпов надо писать 2 значения. В силу того, что алгоритм изначально этого не предусматривал, а этот шейп НЕЛЬЗЯ заменить двумя шейпами, я это обрабатываю на отдельной ветви. Выделяю щейп и через поиск-замену заменяю в нём текст.
Код:
WrdDc.Shapes(I).Select
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = LocAdoRs.Fields(5)
.Replacement.Text = TxShape
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = LocAdoRs.Fields(5)
.Replacement.Text = TxShape
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Потом, кгода всё готово, я печатаю документ и грохаю ссылку на него
Код:
PrBg = Wrd.Options.PrintBackground
Wrd.Options.PrintBackground = True
WrdDc.PrintOut
..........
WrdDc.Close False
Wrd.Quit SaveChanges:=False
...........
Set WrdDc = Nothing
Set Wrd = Nothing
'МАХ Так как печатаемый файл является копией шаблона, _
удалим его
FsO.DeleteFile SaveFlName
Wrd.Options.PrintBackground = True
WrdDc.PrintOut
..........
WrdDc.Close False
Wrd.Quit SaveChanges:=False
...........
Set WrdDc = Nothing
Set Wrd = Nothing
'МАХ Так как печатаемый файл является копией шаблона, _
удалим его
FsO.DeleteFile SaveFlName
Проблема в следующем.
При первой печати всё проходит гладко, но при повторе при поиске и замене выдаётся ошибка:
№ 462
The remote server machine does not exist or is unavailable;
После перезапуска приложения первая печать опять проходит без проблем, но потом опять начинает лезть глюк.
Кто-нибудь сталкивался с подобным, или есть у кого - нибудь мысти по этому поводу?
Удаление файла не должно играть роли, так как он перед каждой печатью копируется из определённой дирректории и вся работа, в том числе и удаление проходит с копией.
P.S.
Ругается на
Selection.Find.ClearFormatting
И на
Selection.Find.Replacement.ClearFormatting
И на
With Selection.Find
:{ :{ :{
WrdDc.Application.Selection.Find.ClearFormatting
ВО АЖ КАК!!!